600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MySQL查询时不加order by的时候默认排序规则是什么?

MySQL查询时不加order by的时候默认排序规则是什么?

时间:2019-12-07 23:08:10

相关推荐

MySQL查询时不加order by的时候默认排序规则是什么?

MySQL查询的时候一般都会加一个order by来保持查出的顺序,但没加的时候就会出现怪异的排序出来。

示例1:

id是自增的,可以看出查询结果是按插入顺序排的

怪异的示例2:

跟上边一样,没有任何条件添加,查出的顺序就不是按照id来的了,中间会却一段数据,被排序在后边了。为什么呢?

经explain分析得知:

以上两图分别对应上边俩示例的explain,默认情况下第一个没有用到索引,第二个用到了user_id这个索引,user_id是表里除了主键之外的唯一一个索引,普通索引。

可以看出,mysql在不给定order by条件的时候,得到的数据结果的顺序是跟查询列有关的。因为在不同的查询列的时候,可能会使用到不同的索引条件。Mysql在使用不同索引的时候,得到的数据顺序是不一样的。这个可能就跟Mysql的索引建立机制,以及索引的使用有关了。更深的东西,在这里就不深追了。为了避免这种情况,在以后的项目中,切记要加上order by

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。