MySQL order by 加引号后无 filesort ?

测试版本

5.7.19

created_at 加索引与不加索引都是下图

MySQL5.7.19 order by 加引号后无 filesort ?

MySQL5.7.19 order by 加引号后无 filesort ?

光年之外
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4

加引号
file

不加引号

file
都没有 filesort

5.7.26

4年前 评论

@轻描淡写 对 MySQL 5.7.19,Mariadb12,MySQL8.0.13 测试后都是这样。


CREATE TABLE `tbla` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `age` INT(11) NULL DEFAULT NULL,
    `birth` TIMESTAMP NOT NULL,
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    INDEX `indx_A_ageBirth` (`age`, `birth`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4
;

// 
desc select * from tbla where age > '20' order by 'created_at'

//
desc select * from tbla where age > '20' order by created_at

看看结果

使用 id order by,测试时,加上单引号后, 还能影响所使用的索引

file

file

4年前 评论

:dizzy_face:你们在一本正经讨论什么啊。。数据库要么不加`表示字段,要么用``包裹字段,单引号是字符串不是字段。你order by 'xxxxx'等于没有order by

4年前 评论

@FreeMason 你的引号打错了 应该是是 tab 键上面的那个符号

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!