LOAD INFILE 2亿+记录速度

LOAD INFILE of 200 million plus records speed

如果这个问题重复,我深表歉意,但我发现的大多数问题都与 InnoDB 有关,而我正在使用 MyISAM。

我正在尝试创建一个进程,将 200-3 亿条记录加载到 table 中。我正在使用 LOAD DATA INFILE,对于一个包含 1.78 亿条记录的文件,加载数据大约需要 30 分钟。任何人都可以建议任何方法来加快速度吗?或者这是相当预期的表现?我试过在加载之前禁用按键,但这似乎并没有真正带来任何明显的速度提升。我还可以尝试哪些其他设置?

我在一个有 24 个相当现代的内核的 linux 服务器上。有什么方法可以利用这个事实吗?

我要补充一点,我尝试加载 3000 万条记录,花了 5 分钟,这似乎与 1.78 亿条记录的性能水平差不多。但是,如果我尝试将 3000 万条记录加载到已经有 3000 万条记录的 table 中,则需要 8 分钟。我能做些什么,因为我相信这种情况也会发生很多次。

感谢任何帮助,但请注意,我对数据库一无所知,因此指向示例或文档的链接会非常有帮助。

在某种程度上这取决于给定记录的宽度,但听起来 30 分钟内 1.78 亿条记录对我来说已经是相当不错的速度了。我在 25 分钟内完成了 4600 万条记录的负载并且非常高兴,但在我的案例中,每条记录也进行了一些处理。

几乎总是有提高性能的方法,但成本效益有时会让人望而却步。如果您让文件加载的频率超过每 30 分钟一次,那么显然可能需要其他东西。但在那种情况下,我相信重新考虑更大的系统以及你是什么 storing/why 你正在存储它也可能是必要的。

至于将 3000 万条记录加载到空与非空 table 之间的区别,这对于索引 table 来说并不意外。