暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
“order by”是怎么工作的?
206
15页
5次
2022-06-15
100墨值下载
16 | “order by怎么工作的
2018-12-19 林晓斌
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们
前面举例用过的市民表为例,假设你要查询城市是杭州的所有人名字,并且按照姓名排序返
1000人的姓名、年龄。
假设这个表的部分定义是这样的:
这时,你的SQL语句可以这么写
CREATE TABLE `t` (
`id` int(11) NOT NULL,
`city` varchar(16) NOT NULL,
`name` varchar(16) NOT NULL,
`age` int(11) NOT NULL,
`addr` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `city` (`city`)
) ENGINE=InnoDB;
select city,name,age from t where city='杭州' order by name limit 1000 ;
heipao8.com Ê×·¢½Ì³ÌÍø
这个语句看上去逻辑很清晰,但是你了解它的执行流程吗?今天,我就和你聊聊这个语句是怎么
执行的,以及有什么参数会影响执行的行为
前面我们介绍过索引,所以你现在就很清楚了,为避免全表扫描,我们需要在city字段加上
引。
city字段上创建索引之后,我们用explain令来看看这个语句的执行情况。
1 使explain命令查看语句的执行情况
Extra个字段中“Using filesort”示的就是需要排序MySQL会给每个线程分配一块内存用于
排序,称为sort_buffer
为了说明这个SQL查询语句的执行过程,我们先来看一下city个索引的示意图
heipao8.com Ê×·¢½Ì³ÌÍø
of 15
100墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜