其他分享
首页 > 其他分享> > order by是怎样工作的?

order by是怎样工作的?

作者:互联网

看看我们的t表定义是这样的:

 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;

1)现在有一个业务需求,我们的市民表上面我们要查询城市是杭州所有人的名字,并且按照名字排序返回前1000行,这个sql语句应该是怎样的?

 select city,name,age from t where city='杭州' order by name limit 1000 ;

2)上面的sql语句中的排序如果正常情况下排序是怎样排序的呢?

3)我们知道我们的sort_buffer内存空间大小是有限的,那么要是我们的待排序数据量大于我们的sort_buffer,该怎么办?

4)上面的排序算法是全排序算法,除此之外还有其他算法吗?

5)全排序和row_id排序有什么区别?

6)全字段排序和row_id排序算法之间是如何切换的?

7)是不是所有的order by语句都需要排序呢?

8)按照上一个问题答案的思路,可不可以优化一下我上面的按照name排序的语句,让它一开始就是排好序的呢?

9)还有没有更加深度的排序优化策略?

标签:sort,city,name,buffer,id,工作,排序,order,怎样
来源: https://www.cnblogs.com/YXBLOGXYY/p/16069490.html