我想知道究竟是什么原因导致 mysql/innodb 上的插入查询在 CPU 相当强大的机器上持续至少 40 毫秒。“等效”查询在同一个 MyISAM 表上运行 <10 毫秒(表没有任何外键)。时间来自 MySQL 控制台。
这是用于复制的“尽可能简单”的数据库结构。
CREATE TABLE `test_table_innodb` (
`id` int NOT NULL AUTO_INCREMENT,
`int_column` int NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `test_table_myisam` (
`id` int NOT NULL AUTO_INCREMENT,
`int_column` int NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我正在从 mysql 控制台运行相同的查询(在 InnoDB 的情况下自动提交事务)。当时没有在机器上执行其他查询,结果是:
mysql> insert into test_table_myisam (int_column) values (5);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test_table_innodb (int_column) values (5);
Query OK, 1 row affected (0.06 sec)
事务开销是否会使查询对 InnoDB 表运行更长时间?或者?