如果我在MySQL中删除行,行是否会上移?

如果我在MySQL中删除行,行是否会上移?,mysql,Mysql,在互联网上,我似乎找不到任何令人信服的参考资料来说明在MySQL数据库中删除某些行时,行是否会上移。或者用户应该在删除时手动执行,然后更新其他行,例如(X-1),其中X是删除的行号 如果您能向我推荐任何帖子或文章,我将不胜感激。简短的回答是否定的 如果删除其他行,即使id列设置为自动增量,行的id也不会更改 因此,您的表中可能有以下ID:删除ID为3、6和9的行后的1、2、4、5、7、8、10。您的问题的答案似乎是这样的。关系数据库中的数据(通常)存储在一个页面上。删除记录时,页面上的空间将被释

在互联网上,我似乎找不到任何令人信服的参考资料来说明在MySQL数据库中删除某些行时,行是否会上移。或者用户应该在删除时手动执行,然后更新其他行,例如(X-1),其中X是删除的行号


如果您能向我推荐任何帖子或文章,我将不胜感激。

简短的回答是否定的

如果删除其他行,即使id列设置为自动增量,行的id也不会更改


因此,您的表中可能有以下ID:删除ID为3、6和9的行后的1、2、4、5、7、8、10。

您的问题的答案似乎是这样的。关系数据库中的数据(通常)存储在一个页面上。删除记录时,页面上的空间将被释放,并可用于其他记录


这就进入了理解页面、填充因子等的领域。重要的考虑因素是,空间将被回收,表中记录的顺序可能与插入顺序无关,并且
自动递增的
列中允许有间隙。

因此,如果im使用搜索算法,它不需要遍历所有空行或已删除的行,它只是跳到第一行,里面有记录,对吗?在表是无序集的数据库环境中,这意味着什么?@GordonLinoff-yeahshift-up,因为我关心的是对许多已删除行的表运行搜索算法。我不希望我的算法通过这些空行到达下一条记录。你认为呢?