关于mysql的默认排序

mysql主键自增的表是按照主键自增排序吗?

  • 原表数据,可以看出是自增的顺序
    在这里插入图片描述

  • 执行sql

select id  from	table

在这里插入图片描述

可以看出这里的结果,并非按照主键排序

思考:为什么mysql的排序不是按照主键排序的呢
官方回复:
https://forums.mysql.com/read.php?21,239471,239688#msg-239688

  • Do not depend on order when ORDER BY is missing.
  • Always specify ORDER BY if you want a particular order – in some situations the engine can eliminate the ORDER BY because of how it
    does some other step.
  • GROUP BY forces ORDER BY. (This is a violation of the standard. It can be avoided by using ORDER BY NULL.)

大概意思是,如果没有orderby 不要依赖表中的顺序,可能是存在问题

猜想:

mysql的排序更多的是按照物理空间的顺序,例如我们数据表中插入了id为1-10的数据,此时我们删除1,然后插入11,那么此时物理顺序是什么?应该是2,3…,11,还是11,2,3…呢?这就需要看删除的1的空间是否能够容纳数据11的插入,如果能够,就会在原来1的空间上插入数据11,如果不能,就另辟新的空间插入11。

结论:如果是需要排序的话,一定要加一个order by

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值