InnoDB与MyISAM插入查询时间

nor*_*ppl 9 database optimization mysqli myisam innodb

我有一个大的MySQL表(~10万行,6.5G)我用它来读写.这是MyISAM,由于MyISAM对写入的所有表锁定,我得到了很多锁.

我决定尝试转移到推荐用于读/写表的InnoDB,它只锁定写入时的特定行.

转换后,我测试了插入语句,结果表明它在InnoDB表中比在MyISAM表中多花了15倍(从0.1秒到1.5秒).这是为什么?

我还没有为InnoDB配置任何东西,并且还计划添加分区,但这个数字对我来说仍然是出乎意料的.当然表是相同的,相同的索引等.

根据要求提供的其他信息:

2个索引.primary是Big INT类型的data_id,varchar(255)类型的非唯一user_id.

插入大约有150行,具有相同的user_id.

索引大小:MyISAM为200 MB,InnoDB为400 MB

wal*_*lyk 5

一个相关的答案表明,innodb_flush_log_at_trx_commit当写入与读取的比率相对较高时,将变量设置为2可能会提高性能.有关更多信息,请参阅文档