手机排序怎么排序的(买手机的核心指标是什么)
手机排序怎么排序的,买手机的核心指标是什么? 很多人都关注一部手机都会在乎手机的cpu有多强,手机摄像头像素有多高,但这些参数,在我看来,这些...
2023-04-18
①首先,清除emp上面的所有索引,只保留主键索引!
drop index idx_age_deptid_name on emp;
②查询:年龄为30岁的,且员工编号小于101000的用户,按用户名称排序
explain SELECT SQL_NO_CACHE * FROM emp WHERE age =30 AND empno <101000 ORDER BY NAME ;

③全表扫描肯定是不被允许的,因此我们要考虑优化。
思路:首先需要让where的过滤条件,用上索引;
查询中,age.empno是查询的过滤条件,而name则是排序的字段,因此我们来创建一个此三个字段的复合索引:
create index idx_age_empno_name on emp(age,empno,name);

再次查询,发现using filesort依然存在。
原因: empno是范围查询,因此导致了索引失效,所以name字段无法使用索引排序。
所以,三个字段的符合索引,没有意义,因为empno和name字段只能选择其一!
④解决: 鱼与熊掌不可兼得,因此,要么选择empno,要么选择name
drop index idx_age_empno_name on emp;
create index idx_age_name on emp(age,name);
create index idx_age_empno on emp(age,empno);
两个索引同时存在,mysql会选择哪个?

explain SELECT SQL_NO_CACHE * FROM emp use index(idx_age_name) WHERE age =30 AND empno <101000 ORDER BY NAME ;

原因:所有的排序都是在条件过滤之后才执行的,所以如果条件过滤了大部分数据的话,几百几千条数据进行排序其实并不是很消耗性能,即使索引优化了排序但实际提升性能很有限。 相对的 empno<101000 这个条件如果没有用到索引的话,要对几万条的数据进行扫描,这是非常消耗性能的,使用empno字段的范围查询,过滤性更好(empno从100000开始)!
结论: 当范围条件和group by 或者 order by 的字段出现二选一时 ,优先观察条件字段的过滤数量,如果过滤的数据足够多,而需要排序的数据并不多时,优先把索引放在范围字段上。反之,亦然。
以上内容就是为大家推荐的mysql排序语句函数(详解mysql排序规则)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:mysql排序语句函数(详解mysql排序规则)
本文地址:https://www.xiaoyin02.com/shcs/117283.html
相关文章
手机排序怎么排序的,买手机的核心指标是什么? 很多人都关注一部手机都会在乎手机的cpu有多强,手机摄像头像素有多高,但这些参数,在我看来,这些...
2023-04-18
手机排序怎么排序,电话号码按什么顺序排列? 兄弟,不知道你所说的顺序是怎么一回事,因为在排序方面有很多种说法,下面有一种算法,参照一下 先...
2023-04-18
手机微博怎么按时间排序,绿洲和微博的区别? 1.在内容推荐中: 绿洲是以时间线排序的信息机制。 微博是以热度排序的信息流机制。 2.从平台使用上来...
2023-03-28
苹果手机排序怎么弄,苹果手机发展顺序排列? 1、第一代iPhone于2007年1月9日由苹果公司前首席执行官史蒂夫·乔布斯发布,并在2007年6月29日正式发售; ...
2023-03-26
手机wps表格怎么排序,手机word怎么自动编号? 选择序号列的空白单元格——开始(HOME)——点击编辑向下箭头——点击定义新编号格式。接着在编号格式...
2023-03-20
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)