19

从一篇文章跳到另一篇文章,我到处都可以看到“批量加载”的表达。

它真正(技术上)是什么意思?

这意味着什么?

欢迎基于用例的解释。

4

4 回答 4

24

索引通常针对一次插入一行进行优化。当您一次添加大量数据时,一次插入一行可能效率低下。例如,对于 B-Tree,插入单个键的最佳方式是向空索引添加一堆数据的非常糟糕的方式。

相反,您使用 B-Trees 采用不同的策略。您对所有数据进行预排序,并将其分组。然后,您可以通过将块转换为树节点来构建新的 B 树。尽管这两种技术具有相同的渐近性能,O(n log(n)),但批量加载操作的因子要小得多。

于 2010-12-16T15:03:48.470 回答
8

批量加载是一种以“大块”形式加载数据(通常加载到数据库中)的方法。您可能一次将客户或采购订单或有关库存物品的信息输入到系统中,批量加载会获取此类信息的文件并在短时间内加载数百/数千/数百万条记录.

如果您从一种 DBMS 转换为另一种,您希望不要将所有信息从旧 DB 输入到新 DB。相反,您可以将旧数据库中的信息以新数据库可以轻松读取的格式转储到文件中,然后将该数据导入新数据库。

这就是批量装载所需要的(无论如何,在 35K 英尺的高度)

于 2010-12-16T15:06:54.267 回答
3

批量加载用于导入/导出大量数据。通常不会记录批量操作,并且事务完整性可能无法按预期工作。批量操作通常会绕过触发器和完整性检查,例如约束。对于大量数据,这会显着提高性能。

于 2010-12-16T15:07:34.030 回答
1

要记住的一件事是,批量加载意味着从源到目标的数据内容是相同的,但这仅在源系统被默认的情况下才是正确的。对于任何数据源,尤其是大数据,源数据在被读取和数据传输发生后都可能发生变化。传统上,如果需要与源匹配的确切时间点捕获,则在线系统要么必须离线,要么暂停更新。

于 2010-12-19T19:12:41.107 回答