Mysql InnoDB插入速度太慢?

标签 mysql innodb insertion

我在 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/

相关文章:

php - MySQL 查询在 Workbench 中工作,但不能通过 PHP 接口(interface)工作

python - 分配变量并在所有值分配后发送到数据库python

php - 使用 JS 和 PHP (MySQL) 实时检查用户名的安全性

php - 如何在应用程序级别处理 MySQL 死锁情况?

algorithm - 插入排序运行时复杂度的最佳描述是什么

php - SQL:如果在另一个表中找不到给定的 ID,则将值插入一个表中(使用单个查询)

php - 无法打开所需的database.inc(尝试使用drupal)

mysql - 当在 mysql 中插入或更新行时,索引到底会发生什么?

mysql - InnoDB 有静态表吗?

Java::LinkedList 的插入速度真的比 ArrayList 快吗?