![]() |
1
3
除了使用“在文件中加载数据”之外,mysql还有一个非sql标准的“批量插入”机制,您可以在其中指定要插入的多个“值”: http://dev.mysql.com/doc/refman/5.0/en/insert.html
此示例将插入一个由5行组成的“块”。与每行生成的sql相比,可以使用“prepared”语句来提高性能。当您加载了数百万条记录之后,可能只剩下3行要插入。您需要用3行插入重新准备sql。不要试图对缺少的第4和第5条记录使用空值,除非您正在使用“insert ignore”,但这比典型的insert要慢。重新准备是非常快的,值得的结果。 我们有一个a insert块大小为200多行的表!每次插入的最大行数取决于操作系统认为是mmap()和malloc()之间切换点的内存大小。对于solaris 10,我们使用“4096/rows_size=rows_per_insert”。这个问题的某些地方有一个mysql错误,它与读缓冲区大小松散相关。 |