MySQL 默认排序是什么[亲测有效]

MySQL 默认排序是什么[亲测有效]MySQL 默认排序是什么

MySQL 默认排序是什么

最近在优化分页查询时,有一个问题:查询不同列,分页出来得数据不一样。先看一下这个现象

表结构:

CREATE TABLE `t_attach` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `fname` varchar(100) NOT NULL DEFAULT "",
  `ftype` varchar(50) DEFAULT "",
  `fkey` text NOT NULL,
  `authorId` int(10) DEFAULT NULL,
  `created` int(10) NOT NULL,
  `hash` varchar(255) DEFAULT NULL,
  `web_url` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fname` (`fname`) USING BTREE,
  KEY `created` (`created`) USING BTREE,
  KEY `web_url` (`web_url`) USING BTREE,
  KEY `authorId` (`authorId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=323466 DEFAULT CHARSET=utf8;

代码100分

这里面,有几个列建立了索引

看一下查询语句

 

代码100分 SELECT  * FROM  t_attach LIMIT 10,10;    
 SELECT id,fname FROM t_attach   LIMIT 10,10;
 SELECT id FROM  t_attach    LIMIT 10,10

MySQL 默认排序是什么[亲测有效]

 

 

 MySQL 默认排序是什么[亲测有效]

 

 

 MySQL 默认排序是什么[亲测有效]

 

 

 好奇怪,居然查询到的数据不是一致的。想了好久,应该是mysql排序的方式不一致导致的。

接着执行了一下EXPLAIN 分析一下看看

 EXPLAIN SELECT  * FROM  t_attach LIMIT 10,10;    
 EXPLAIN SELECT id,fname FROM t_attach   LIMIT 10,10;
 EXPLAIN SELECT id FROM  t_attach    LIMIT 10,10

MySQL 默认排序是什么[亲测有效]

 

 

 ②

MySQL 默认排序是什么[亲测有效]

MySQL 默认排序是什么[亲测有效]

 

 

 居然用到的key不一样,类似的情况也可以看下

MySQL 默认排序真的是按主键来排序的吗

可以看出,mysql在不给定order by条件的时候,得到的数据结果的顺序是跟查询列有关的。

因为在不同的查询列的时候,可能会使用到不同的索引条件。

Mysql在使用不同索引的时候,得到的数据顺序是不一样的。

这个可能就跟Mysql的索引建立机制,以及索引的使用有关了。

可以参考这个看看。

SQL 语句的查询结果的的顺序是由哪些因素决定?

为了避免这种情况,在以后的项目中,切记要加上order by

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7998.html

(0)
上一篇 2023-03-09
下一篇 2023-03-09

相关推荐

  • Python字典删除操作

    Python字典删除操作在Python编程中,字典是非常常用的一种数据类型,其优势在于可以快速访问和查找元素。然而,在使用字典时需要进行删除操作,这也是字典操作的一个重要部分。

    2024-08-24
    32
  • Python位移计算器:将二进制位移动到指定位置

    Python位移计算器:将二进制位移动到指定位置Python是一种流行的通用编程语言,具有强大的运算能力和丰富的库。在Python中,位操作是一种常见的计算方法。本文将介绍一个Python位移计算器,该计算器可以将给定的二进制数位移动到指定的位置。

    2024-01-19
    98
  • 数据库 国产化_数据库厂商

    数据库 国产化_数据库厂商’天底下没有完美的数据库,也许Oracle是个例外”,前阵子几个DBA在讨论国产化替代时,有人就这么说。确实是的,Oracle算是比较完美的数据库产品了,不过现在很多用户都在面临从Oracle数据库向

    2023-06-20
    169
  • python学习之路23(python进阶之路)

    python学习之路23(python进阶之路)对于零基础入门的人来说,对于Python的学习还是有点懵懵懂懂的,如果有一些书籍先看看来引导,学起来难度也会减低很多!所以,学python倒是向大家推荐这些书籍!

    2023-12-02
    142
  • mysql备份脚本怎么写_docker 备份

    mysql备份脚本怎么写_docker 备份从MySQL5.6开始,mysqlbinlog支持将远程服务器上的binlog实时复制到本地服务器上。 mysqlbinlog的实时二进制复制功能并非简单的将远程服务器的日志复制过来,它是通过MyS…

    2023-04-07
    168
  • mysql left join 执行顺序逻辑

    mysql left join 执行顺序逻辑select * from user left join info on user.uid=info.uid where user.uid in (2,3); mysql的执行逻辑如下 user_r…

    2022-12-24
    148
  • sql去重取最新的_怎样筛选excel表中的数据

    sql去重取最新的_怎样筛选excel表中的数据1、去掉重复数据DISTINCT SELECT DISTINCT 去掉重复数据列 FROM TestE WHERE pn='SPLW' 2、取最新数据 select * FROM Te

    2023-02-16
    140
  • Python 函数参数

    Python 函数参数当定义一个函数时,可以给函数的参数设置默认值。当调用该函数时,如果没有给该参数传入值,则默认使用设置的默认值。

    2024-03-06
    94

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注