我在 Mysql 中有一个 InnoDb 表,需要非常快速地处理插入(其他一切都可以随心所欲地慢)。该表没有关系或索引,有自动递增的 id 和时间戳。
我从多个客户端运行了一个脚本,以在分配的时间内插入尽可能多的记录(循环插入),并计算每秒的插入次数。
我平均每秒只能插入 200 次,而我需要大约 20000 次。性能不会随着运行脚本的客户端数量或运行脚本的计算机的数量而变化。
有什么方法可以加快这些插入的性能吗?
------编辑--------
感谢您的所有帮助。我无法将任何插入分组在一起,因为当我们启动时,所有插入都将来自多个连接。我最终将该表的引擎切换为 MyISAM,每秒插入次数立即飙升至 40,000 次。
最佳答案
您使用了哪个主键?
InnoDB 使用聚集索引,因此所有数据的顺序与其主键索引相同。
如果不使用自增类型主键,那么每次插入都会产生大量的磁盘操作。它推送所有其他数据并插入新元素。
要获得更长的引用,请尝试检查 http://dev.mysql.com/doc/refman/5.0/en/innodb-table-and-index.html
关于Mysql InnoDB插入速度太慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853784/