[MySQL] 索引与性能(4)- 排序
来源:互联网 发布:linux redis 批量删除 编辑:程序博客网 时间:2024/06/11 13:11
我们知道B树索引是有序的,那么可不可以通过只扫描索引就能完成order by操作呢?答案是肯定的,但条件也比较苛刻:只有当索引的列顺序和order by字句的列顺序完全一致,且order by字句中所有列的排序方式要么全部都是ASC,要么全部都是DESC,MySQL才能使用索引来对结果进行排序;如果查询需要关联多个表,则条件更苛刻,只有当order by字句中的列全部为驱动表(执行计划中)时,才能使用索引做排序。
下面我们来看一些例子:假设users表上有索引(login_id,status)
root@test 05:03:12>explain select id from users order by login_id,status\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5894108 Extra: Using index1 row in set (0.00 sec)root@test 05:03:17>explain select id from users order by status\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5894108 Extra: Using index; Using filesort1 row in set (0.00 sec)root@test 05:03:26>explain select id from users order by login_id desc,status\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5894108 Extra: Using index; Using filesort1 row in set (0.00 sec)root@test 05:04:03>explain select id from users order by login_id desc,status desc\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: users type: indexpossible_keys: NULL key: login_id key_len: 387 ref: NULL rows: 5894108 Extra: Using index1 row in set (0.00 sec)注:如果在Extra列出现using filesort,表示无法按索引顺序扫描。
- [MySQL] 索引与性能(4)- 排序
- 高性能的MySQL(5)索引策略-覆盖索引与索引排序
- [MySQL] 索引与性能(1)- 索引类型
- [MySQL] 索引与性能(2)- 聚簇索引
- [MySQL] 索引与性能(3)- 覆盖索引
- [MySQL] 索引与性能(3)- 覆盖索引
- mysql 优化(5)索引与排序
- MySQL索引与高性能SQL介绍
- MySQL 基础与高性能索引策略
- Mysql性能优化(二) 索引优化
- MySQL性能优化---索引
- Mysql 高性能索引
- mysql 性能索引篇
- Mysql性能优化-索引
- 创建mysql性能索引
- 高性能的MySQL(5)索引策略一聚簇索引
- 高性能的MySQL(5)索引策略一聚簇索引
- 由浅入深探究 MySQL索引结构原理、性能分析与优化(一)
- 转)计算机领域的顶级会议和期刊
- mvc 从后台得到前台元素值的方法
- java对byte数组解压缩(zip,gzip,bzip2,jzlib)
- ubuntu安装subversion
- 使用 Storyboard Segue 实作 UIViewController 的切换
- [MySQL] 索引与性能(4)- 排序
- linux系统服务的基础知识
- SGU105—— Div 3
- JS 实现文件夹目录选择
- 为面试做准备之冒泡排序
- Hadoop-数据库发送和接收相关实现-DataXceiver解析<转>
- android.widget.textview cannot be casted to android.widget.button
- Toast详解
- 深入解析 SAP ABAP 基本数据类型(ABAP elementary types)