mysql排序语句函数 详解mysql排序规则

指数的选择(1)首先清除emp以上的所有索引,只保留主键索引!请在emp上删除索引idx _ age _ deptid _ name②查询:年龄30岁,员工数小于101000的用户,按用户名排序。解释SELECT SQL _ NO _ CACHE * FROM EMP WHERE age = 30 AND empno <101000按姓名排序;③全表扫描肯定是...

指数的选择

(1)首先清除emp以上的所有索引,只保留主键索引!

请在emp上删除索引idx _ age _ deptid _ name

②查询:年龄30岁,员工数小于101000的用户,按用户名排序。

解释SELECT SQL _ NO _ CACHE * FROM EMP WHERE age = 30 AND empno <101000按姓名排序;

③全表扫描肯定是不允许的,要考虑优化。

思路:首先,你需要使用where过滤条件的索引;

在查询中,age.empno是查询的过滤条件,而name是排序字段,因此让我们创建这三个字段的复合索引:

在emp(age,empno,name)上创建索引idx _ age _ empno _ name

再次查询,发现使用filesort仍然存在。

原因:empno是范围查询,导致索引无效,所以名称字段不能按索引排序。

所以三个字段的匹配索引是没有意义的,因为empno和name字段只能选一个!

④解决方法:鱼与熊掌不可兼得。因此,您应该选择empno或name。

请在emp上删除索引idx _ age _ empno _ name

在emp(年龄,姓名)上创建索引idx _ age _ name

在emp(age,empno)上创建索引idx _ age _ empno

两个索引同时存在,mysql会选择哪个?

解释SELECT SQL _ NO _ CACHE * FROM EMP use index(idx _ age _ name)其中age =30,empno & lt101000按姓名排序;

原因:所有的排序都是在条件过滤之后执行的,所以如果大部分数据都是通过条件过滤来过滤的,那么对成百上千的数据进行排序并不会真正消耗性能。即使索引优化了排序,实际的性能提升也是有限的。相对empno

结论:在范围条件字段和分组依据或排序依据字段之间进行选择时,最好观察条件字段的筛选数量。如果过滤的数据足够多,但要排序的数据不多,最好将索引放在范围字段上。反之亦然。

本文来自夜遇投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/483126.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 03-31
下一篇 03-31

相关推荐

  • mysql驱动jar包怎么装 mysql驱动包与mysql版本

    当您使用Idea和PyCharm连接到MySQL时,可能会遇到以下错误:服务器返回无效时区。去’高级’标签和设置‘serverTimezone & # 8217属性。今天我整理几个解决方案,供大家参考。首先我们来定位一下原因:原因:服务器返回了无效的时区。转到“高级”选项卡,手动设

    2023-07-28 06:51:01
    998 0
  • html连接mysql数据库PHP eclipse连接mysql数据库步骤

    将模拟仿真数据插入Mysql数据库有时候,我们在测试网站的时候需要大量的仿真数据,但是php并没有提供生成仿真数据的工具。这个时候我想到了mockjs可以生成仿真数据。能否将Mockjs生成的仿真数据填充到数据库中?然后开始工作:例如,mysql数据库表是以下字段:因此,参考模拟文

    2023-07-27 10:17:01
    190 0
  • mysql最新版安装教程 mysql数据库建表方法

    升级版本选择原则和建议MySQL的升级需要遵循以下几条原则和建议:支持从MySQL5.7升级到8.0,注意仅支持GA版本之间的升级。不支持跨大版本的升级,如从5.6升级到8.0是不支持的。建议升级大版本前先升级到当前版本的最近小版本,如5.7先升级到5.7.35后再升级到8.0。在大版本内部

    2023-07-25 19:46:01
    968 0
  • mysql客户端哪个好用 最好的MySQL客户端推荐

    我们在选择工具的时候,往往会优先考虑那些免费的,好用的!Navicat作为一款付费软件,功能强大,但并不能阻止我们探索新的工具。最近体验了MySQL的官方客户端工具MySQL Workbench。本文将它与Navicat进行对比,看它能否取代Navicat!固定我们先安装MySQL Workbench。上面有个

    2023-07-22 08:56:01
    982 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信