自增键产生大量空洞的原因:
innodb_autoinc_lock_mode参数为2,使用如下sql
insert into XXX values( 记录1,记录2,记录3,记录4,。。。记录N ) ON DUPLICATE KEY UPDATE
插入记录时,即使所有的记录都命中了ON DUPLICATE KEY UPDATE,也会导致自增键增加N。
原因是为了性能,在insert XXX ON DUPLICATE KEY UPDATE时,会直接分配N个自增id给该sql,而不是根据实际插入的记录来分配自增id。
参见文档:https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
插入的业务数据大部分都是重复,基本能命中DUPLICATE KEY UPDATE,
https://zhuanlan.zhihu.com/p/479859611