LOAD INFILE 2亿+记录速度



如果这个问题重复,我很抱歉,但我发现的大多数问题都是关于InnoDB的,我正在使用MyISAM。

我正在尝试创建一个进程,将2亿至3亿条记录加载到表中。我使用的是LOAD DATA INFILE,对于一个有1.78亿条记录的文件,加载数据大约需要30分钟。有人能提出加快速度的方法吗?还是说,这是意料之中的表现?我试过在加载之前禁用关键帧,但这似乎并没有真正带来任何明显的速度提高。我还可以尝试其他哪些设置?

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

我要补充的是,我尝试加载3000万张唱片,花了5分钟,这似乎与1.78亿张唱片的性能水平大致相同。但是,如果我试图将3000万条记录加载到一个已经有3000万条的表中,则需要8分钟的时间。我能做的任何事情,因为我相信这种情况也会发生很多次。

任何帮助都很感激,但请知道我对数据库相当无知,所以链接到示例或文档会非常有用。

在某种程度上,这取决于给定记录的宽度,但听起来30分钟内1.78亿条记录对我来说已经是一个相当好的速度了。我在25分钟内完成了4600万条记录,我很高兴,但在我的情况下,每一条记录都要进行一些处理。

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

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

最新更新