mysql优化-索引
2016-07-14 13:02
337 查看
mysql5.6参考手册读书笔记
基于索引的优化
索引的使用场景
1.根据WHERE子句查找行。2.减少潜在结果集的大小。如果有多个索引可供选择,MYSQL通常选择能够过滤掉最多行的索引。换句话说就是根据该索引查找的结果集最小。
3.如果表中有一个复合索引,如果查询条件满足该索引的最左匹配原则,则可以使用该索引来优化查询。
假设复合索引列为(col1, col2, col3),那么查询条件中包含
(col1),
(col1, col2), 或者
(col1,col2,col3)都可以使用该索引做优化。
4.在连接查询当中,如果连接条件列的大小和类型都一致时,可以有效利用连接条件列上的索引。
当大小一致时,varchar和char被认为是相同类型。
连接条件列必须使用相同的字符集。
当连接列的类型不一致时,如果不能直接做比较(不经转换),那么索引将不被使用。
5.在索引列上查找最大值(MAX(key_col_N))和最小值(MIN(key_col_N))
key_col_N为被索引的列。在索引中,如果key_col_N之前索引的列的比较对象为常量,则执行MAX和MIN时走索引会很高效。
6.利用索引做排序和分组。如果order by子句或者group by子句满足索引的最左匹配原则,索引就可以用来做排序和分组。
7.覆盖索引
复合索引
一个复合索引最多可包含16列,对于某些数据类型,复合索引还支持前缀索引。MYSQL使用复合索引必须满足最左匹配原则。
相关文章推荐
- mysql优化-数据库结构
- mysql优化-innodb表
- 深入理解乐观锁与悲观锁
- mysql server问题汇总
- mysql 5.6 参数详解
- MySQL数据库系列之数据库设计原则
- sphinx 配置文件全解析
- MySQL 5.7 参数 – log_timestamps
- mysql常用字符串操作函数大全,以及实例
- MySQL 拷贝数据库表方式备份,还原后提示 table xxx '' doesn`t exist
- Mysql数据库设计
- MySQL并发复制系列二:多线程复制
- mysql并发复制系列 一:binlog组提交
- Spark踩坑记——数据库(Hbase+Mysql)
- 解决 The mysql extension is deprecated and will be r
- 执行常用的mysql数据库操作
- MYSQL 备份工具
- mysql主从同步报错
- 安装mysql Install/Remove of the Service Denied!错误的解决办法
- MYSQL数据库迁移