Vij*_*ati 6 mysql auto-increment
我有一个网页表,主键作为URL的哈希值,还有一个auto_increment ID列,它也是一个唯一键.
我有点困惑的是为什么连续插入不会将ID字段增加1.当我第一次创建表并执行单个插入时,第一个id为1.第二个插入生成,id为5和第三是8.
我在表上有一个触发器,在插入时,计算网页URL的哈希值.不确定这是否相关.
有间隙不是问题,但我想了解为什么连续插入不会生成步长为1的ID.
谢谢!
为什么会出现这种情况的几点建议:
请参见auto_increment_increment.每次在INSERT期间请求新值时,它都会控制增量.
此外,如果您在MySQL 5.1中使用InnoDB表,它们会优化auto-inc分配,以便在较短的时间内锁定表.这对于并发性很有用,但如果行的INSERT与另一个约束(例如辅助UNIQUE列或外键)冲突,它也会"丢失"auto-inc值.在这些情况下,分配的auto-inc值不会被推回到队列中,因为我们假设另一个并发线程可能已经分配了下一个auto-inc值.
当然也会发生回滚,在这种情况下,可以分配auto-inc值但丢弃.
| 归档时间: |
|
| 查看次数: |
15249 次 |
| 最近记录: |