MySQL order by 加引号后无 filesort ?

测试版本

5.7.19

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

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

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

光年之外
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前 评论

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