加快MySQL的插入(用于testing目的)

我有一些需要做很多INSERT的软件。 在生产环境中会有一些严重的调整和testing等等,但是现在当我需要testing时,我想尽可能地加快插入。 因此,我的问题是 – 有没有办法来调整MySQL,使它不做太多的磁盘I / O,但保持一切在RAM和同步磁盘很less(如一次N秒说?)

插入延迟可以帮助(仅MyISAM),因为它允许插入批量(这是MyISAM的好处)。
你的表分区也将有所帮助。

如果你的记忆允许它(和你所要求的),那么你可以使用一个记忆表。 只要确保设置max_heap_table_size和tmp_table_size足够用于数据。

多一点诡计,可以(在Linux上)使用TMPFS并将数据文件放在那里(使用符号链接)

请参阅MySQL手册的答案。 要回答您的具体问题,请查看INSERT DELAYED ,它正是您想要的。 您可以使用delayed_insert_limitdelayed_queue_size调整其行为。

但是,如果您可以批量插入INSERT,那可以更快; 使用批量插入工具,或者提供多个VALUES列表,例如: INSERT INTO table (column) VALUES (val1),(val2),(val3)

正如丹尼尔在答案的第二部分所说 – 批量插入会给你很多。 检查此演示文稿。 你的规模可能小得多,但我想你会发现它有趣。