繁体   English   中英

添加辅助键时,MySQL innoDB表中的插入缓慢

[英]Slow insert in MySQL innoDB table when adding secondary key

我的InnoDB表有一个抛光问题,我无法弄清楚:

  • 我有一个包含5列的表,其中4列构成主键,另外还有3个辅助键。 在该表中,批量插入会花费很长时间-100,000条记录最多需要400秒(即250条记录/秒)
  • 如果所有二级索引都被删除,则插入速度非常快-100,000条记录需要20秒(5000条记录/秒或快20倍)
  • 如果我在单个bigint用户ID列上又添加了一个辅助键,该列也是主键的一部分(我经常需要搜索特定用户的数据),则插入会立即变慢3-4倍。

这里发生了什么? 我怀疑答案是InnoDB存储索引的方式,但是经过大量阅读,我无法弄清楚。 最奇怪的是,使用MyISAM引擎的同一个表(添加了所有索引)始终以5000条记录/秒的速度工作。

我不知道为什么 但是MySQL网站提供了一个性能调优技巧,用于使用辅助键将其插入InnoDB(这对我意味着这就是事实,因此您必须加以处理): “如果您对辅助键具有唯一约束,则可以通过在导入会话期间暂时关闭唯一性检查来加快表导入速度。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM