大量插入的InnoDB表不会使用我所有的CPU
我有一个数据包日志数据库,几乎从未查询过。它只需要在插入时快速。我之所以使用InnoDB,是因为我想保持ACID合规性,因为即使丢失单个数据包也可能损害我们的客户。在性能调整方案中,我通过多个数据库连接将1,000,000个数据包发送到服务器。但是,无论我在my.cnf中使用什么设置,我都无法使mysqld进程在具有12个核心的系统上使用超过900%的CPU。(盒子上没有其他东西。) 我设置了以下内容 innodb_file_per_table = 1 innodb_write_io_threads = 64 innodb_read_io_threads = 64 innodb_thread_concurrency = 0 如果使用MyISAM,则可以在大约6秒钟内获得所有写入的数据包。但是InnoDB大约需要25。我可以让MySQL使用其余的系统资源并更快地插入吗? 编辑:这是表的架构: +-------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------------+------+-----+---------+-------+ | t | bigint(20) unsigned | YES | | NULL | | | a | char(1) | YES | …