高性能mysql
Posted 千里之行_始于足下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高性能mysql相关的知识,希望对你有一定的参考价值。
5 创建高性能的索引
5.1 索引基础
5.1.1 索引的类型
- B-Tree
- 哈希索引
- 空间数据索引
- 全文索引
- 其他索引类别
5.2 索引的优点
1.索引大大减少了服务器查询需要扫描的数据量
2.索引可以帮助服务器避免排序和临时表
3.索引可以将随机IO变为顺序IO
读书推荐《数据库索引设计和优化》Tapio Lahdenmaki
5.3 高性能的索引策略
5.3.1 独立的列
where查询条件中的索引列不要进行计算,直接进行选择
5.3.2 前缀索引和索引选择性
索引选择性 : cardinality/#T (及不重复的索引列/记录总数)
前缀索引的选择:
1.选择选择性接近于整列的选择性的最小前缀即可
2.只看平均选择性是不够的,需要看前缀的最坏选择性
前缀索引的优缺点:
优点:前缀索引更小,更快
缺点:前缀索引无法用作ORDER BY,GROUP BY
5.3.3 多列索引
索引合并的AND:往往意味着需要建立多列索引
索引合并的OR: 可以优化成UNION的形式
5.3.4 选择合适的索引列顺序
将选择性高的索引列放在前面(cardinality,数据基数)
5.3.5 聚簇索引
以上是关于高性能mysql的主要内容,如果未能解决你的问题,请参考以下文章
推荐《高性能MYSQL(第3版)》及 { MySQL性能管理及架构设计 }