auto_increment 生成的ID 中间少了一部分

 

 

ID 越过---没有生成 id 为64的记录 请问为什么
tsung测试 ejabberd http插入 数据库接口
 +------------+--------------+------+-----+---------+----------------+
| Field         | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id              | int(11)      | NO   | PRI | NULL    | auto_increment |
| vname     | varchar(128) | YES  | UNI | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

 


select * from names where id like'6_' order by id;
+----------+------------+
|     id     |    vname |
+----------+------------+
|       60 | test160    |
|       61 | test161    |
|       62 | test162    |
|       63 | test163    |
|       65 | test164    |
|       66 | test165    |
|       67 | test166    |
|       68 | test167    |
|       69 | test168    |
+----------+------------+
 

 

 

这个与数据库内部实现机制有关。这个自增的字段属于临界资源,肯定是受内部并发控制锁来进行控制的。 再加上一定的缓存机制,可能前一个操作会预先分配了65和66,后一个操作只得到67,然后前一个操作只用了65,那么66就没有人再用力。

 oracle里面这个情况很常见。
 是的。
 它可能预分配资源,为了保持效率

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值