MySQL 索引选择源码分析
2016-04-07 14:29
253 查看
参考
MySQL查询优化器的在索引选择的规则可以概括为:
1、对无过滤条件、索引可以覆盖的查询。查询优化器选择覆盖索引键值最短的索引进行查询;
2、对无过滤条件、无索引覆盖的查询。查询优化器选择全表扫描;
3、对有过滤条件、索引可以覆盖的查询。查询优化器优先基于代价的方式对过滤条件进行处理。如果可以索引查找,将选择代价最低的索引进行查找。如果是全表扫描,则通过查找键值最短的覆盖索引进行查询,并通过过滤条件进行过滤。
4、对有过滤条件、无索引覆盖的查询。查询优化器基于代价的方式对过滤条件进行处理,生成查询计划。
MySQL查询优化器的在索引选择的规则可以概括为:
1、对无过滤条件、索引可以覆盖的查询。查询优化器选择覆盖索引键值最短的索引进行查询;
2、对无过滤条件、无索引覆盖的查询。查询优化器选择全表扫描;
3、对有过滤条件、索引可以覆盖的查询。查询优化器优先基于代价的方式对过滤条件进行处理。如果可以索引查找,将选择代价最低的索引进行查找。如果是全表扫描,则通过查找键值最短的覆盖索引进行查询,并通过过滤条件进行过滤。
4、对有过滤条件、无索引覆盖的查询。查询优化器基于代价的方式对过滤条件进行处理,生成查询计划。
相关文章推荐
- JDBC简单示例
- 怎么将emoji表情存入mysql
- mysql 导出和导入
- mysql5.6新特性总结
- MySQL(8)--Cluster
- 将mysql安装至windows系统服务
- Ubuntu14.04 LTS MySQL安装及远程连接
- mysql服务无法启动
- mysql,命令导入\导出表结构或数据
- mysql对表的操作
- mysql命令行导出数据库
- mysql查询方式
- MySQL(7)-多源复制
- MySQL6.0安装失败的解决方案
- node.js中mysql的简单使用
- mysql常用的一些命令,用于查看数据库、表、字段编码
- Mysql5.7.11解压版在windows10上的安装配置
- mysql5.7.11服务无法启动,错误代码3534
- MySQL数据库使用mysqldump导出数据详解
- mac上终端起动MySQL的方法 by:I'm 小菜鸟