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

示例1:

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

怪异的示例2:

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

经explain分析得知:

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

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

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

  1. MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号

    MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号 一.前言 Oracle中有rownum,实现查询的时候记录行号,MySQL中没有 ...

  2. mysql查询时,offset过大影响性能的原因与优化方法

    遇到的问题 我们大家都知道,mysql查询使用select命令,配合limit,offset参数可以读取指定范围的记录,但是offset过大影响查询性能的原因及优化方法,这次工作中因为要导出40W的数 ...

  3. mysql大小写区分_详解MySQL查询时区分字符串中字母大小写的方法

    如果你在mysql有唯一约束的列上插入两行值'A'和'a',Mysql会认为它是相同的,而在oracle中就不会.就是mysql默认的字段值不区分大小写?这点是比较令人头痛的事.直接使用客户端用sql ...

  4. 《MySQL 入门教程》第 28 篇 字符集与排序规则

    文章目录 28.1 字符集 28.1.1 服务器字符集 28.1.2 客户端字符集 28.1.3 国家字符集 28.2 排序规则 28.2.1 设置排序规则 28.2.2 中文排序规则 本篇我们介绍一 ...

  5. mysql查询时强制区分大小写

    转载自:http://snowolf.iteye.com/blog/1681944 平时很少会考虑数据存储需要明确字符串类型字段的大小写,MySQL默认的查询也不区分大小写.但作为用户信息,一旦用户名 ...

  6. MySql 查询时 为NULL 设置默认值

    我们在查询MySql 数据库时,如果使用比较复杂的查询方式,查询结果有时候会为空(NULL). 大多数时候,我们会希望他有一个默认值. 对于这个默认值,一种办法是查询完成后用编程语言给他赋默认值. 然 ...

  7. mysql查询默认排序规则_深究 mysql 默认排序, order by 的顺序【收藏】

    mysql 语句中如果没有使用 order by 来排序,通常会用 主键正序排列,但是有的时候不是这样,来看一个实例. 实例 群友问:请教一个问题,mysql 默认排序问题,当sql 语句 的排序没有 ...

  8. MySQL查询时指定使用索引

    在MySQL中,可以通过指定查询使用的索引来提高查询性能和优化查询执行计划.以下是一些常见的场景,可能需要考虑指定查询使用的索引: 查询性能问题:当一个查询在大表上运行缓慢时,可以考虑为该查询指定合适 ...

  9. mysql查询时调用函数_【性能测试】性能测试时对Mysql数据库的慢查询监控

    在做Web项目性能测试过程中,肯定要对数据库SQL语句执行情况实施监控,以便给开发提供准确的性能优化意见.目前Mysql数据库可以说是使用最广泛的数据库了,接下来咱们谈一下怎么使用Mysql数据库提供 ...

最新文章

  1. 常见NoSQL系统使用场景分析
  2. 编程语言的排名取决于应用场景和主要公司的需求
  3. Autodesk PowerInspect 2021中文版
  4. Oracle KFED 和 KFOD 工具说明
  5. Zookeeper--ZAB与Paxos算法联系与区别
  6. sql行转列 列数据不定 sql交叉报表实例
  7. 【Flink】Flink 报错 Writing records to streamload failed
  8. win10开发java_java的开发环境(win10)
  9. linux java环境变量修改不生效_ansible执行带有环境变量的脚本不生效
  10. 知道圆心半径取圆上的经纬度_作为一名台球高手,你应该知道的事
  11. 商品翻牌效果(纯css)
  12. Programming in the Mid-Future(转)
  13. spring cloud简介之最好参考
  14. js回文数的四种判断方法
  15. ★一张图弄明白从零维到十维
  16. acrobat PDF删除部分_迅捷PDF转换器3.2.0Mod会员版
  17. node koa2 mysql_Node.js + Koa2 + MySQL + Vue.js 实战开发一套完整个人博客项目网站
  18. php无法找到该页,UCHOME出现问题(转帖)
  19. Ansys电机控制系统分析
  20. 进阶实验5-3.2 新浪微博热门话题 (30 分)

热门文章

  1. adb remount失败的解决办法:
  2. 机器学习面试题之机器学习基础(一)
  3. html查找器如何卸载,租号器要求卸载影子系统-怎么完全删除影子系统
  4. 当下各种关系数据库管理系统
  5. 【Kaggle竞赛】Kaggle竞赛了解
  6. 第一次竞赛-A.质数的最大乘积
  7. java卸载(java卸载 windows installer)
  8. 华为、惠普、 戴尔、浪潮 服务器命名规则和型号分类
  9. c# 获取CPU占用率和剩余内存
  10. Ubuntu在安装NVIDIA驱动后黑屏无法启动进入图形桌面