mysql排序语句函数 详解mysql排序规则
索引的选择【mysql排序语句函数 详解mysql排序规则】①首先 , 清除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 ;
文章插图
文章插图
文章插图
文章插图
文章插图
原因:所有的排序都是在条件过滤之后才执行的 , 所以如果条件过滤了大部分数据的话 , 几百几千条数据进行排序其实并不是很消耗性能 , 即使索引优化了排序但实际提升性能很有限 。相对的 empno<101000 这个条件如果没有用到索引的话 , 要对几万条的数据进行扫描 , 这是非常消耗性能的 , 使用empno字段的范围查询 , 过滤性更好(empno从100000开始)!
结论: 当范围条件和group by 或者 order by 的字段出现二选一时 , 优先观察条件字段的过滤数量 , 如果过滤的数据足够多 , 而需要排序的数据并不多时 , 优先把索引放在范围字段上 。反之 , 亦然 。
推荐阅读
- oracle连接查询语句 oracle查看数据库连接情况
- 如何取消桌面的自动排序
- Word怎么设置排序
- excel怎么自动排序123
- Excel如何按姓名字母排序
- 培根随笔精彩语句
- mysql代理服务器 云数据库和普通数据库
- oracle迁移到mysql方案 oracle转mysql数据移植
- 衣服号码排序谁是大码衣服排序大码是L吗
- oracle删除用户语句 教你oracle查看用户拥有的权限