mysql autoincrement在innodb中不是顺序的

时间:2013-04-08 14:12:24

标签: mysql auto-increment

Mysql自动修复不是顺序的。

当我尝试上传csv批量数据时,它正在跳过一些自动增量ID

自动增量ID不是顺序

数据库引擎是innodb& id是自动增量

例如

   id      color 
    1      red
    2      blue
    3      green
    4      orange
    9      pink
    10     white
    11     black 
    16     gray
    17     brown

id不是连续的。

2 个答案:

答案 0 :(得分:3)

不知道codeignitor和事务的细节,但我知道查询中的“catched failed”(如insert ignore)具有NOT插入的效果,但DO会增加auto_increment。在这里寻找你的答案。而对于其他人来说,不要打扰“修复”这个。

答案 1 :(得分:2)

如果您使用比5.1.22更新的MySQL,可能会因为Miguel Angel Nieto在locking strategy中解释的InnoDB this blog post而引起这种情况。

您可以更改此行为设置innodb_autoinc_lock_mode参数:

  • innodb_autoinc_lock_mode = 0“传统”锁定模式,与5.1.22之前的行为相同
  • innodb_autoinc_lock_mode = 1“连续”锁定模式,默认行为,这可能是您设置的,它旨在提高并发性和性能,但缺点是 hole < / em>关于序列。
  • innodb_autoinc_lock_mode = 2“交错”锁定模式,这是使用语句时速度最快,扩展性最强的锁定模式,但不安全从二进制日志重播 SQL语句时的基于复制的或恢复方案

有关使用innodb_autoinc_lock_mode的详细信息,您可以查看detailed mysql documentation