mysql自增列删除后为什么不是按顺序排列的-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

mysql自增列删除后为什么不是按顺序排列的

蛮大人123 2016-02-08 13:44:01 1916

如图所示,15到44之间删除了很多行,但45,46那些并没有被放到15与44之间,而46到50之间删除的位置,却被后面的,52,51填充回去了,为什么会这样?而且是52在51之前?然后,46到50之间应该有三个空位,但填充了两个之间,后面的53又跑到50后面去了,这又是为什么呢?
1

关系型数据库 MySQL
分享到
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:39:36

    自增ID是会按照出现过的最大值增加的,不管你删没删。
    MySQL会为每一个自增列储存一个这样的最大值,而不是每次都去表里查找最大的值。
    另外,序号是有意义的,可参照数据库设计的基本原则。
    每一个序号都对应着指定的一个事物。
    这么设计也可以避免因为不完全的删除(比如另外一个表的列和ID相关,但是没有随之删除)而导致混乱。
    我表示,多年经验,能不删的就不删。
    完整性,可恢复性,数据挖掘……
    加一个列作为标记(表明是否有效),比删除的设计要好。
    排序的问题,看你的SQL啊,那么在意顺序的话,就写个order by咯。

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题