阿林的博客
昨夜梦 今辰你 明日思 | Blog about life and learning.

【读书笔记】《高性能MySQL》第五章:创建高性能索引(1)

  March 01, 2020 读书笔记    高性能MySQL   

索引是存储引擎用于快速找到记录的一种数据结构,这也是索引的基本功能.在MySQL中也叫”键key”.良好的性能少不了索引.换句话说,索引优化能够将查询性能轻松提高几个数量级.

1. 索引基础

select first_name from actor where actor_id = 5;

运行上面的查询:如果在actor_id列上有索引,MySQL将使用该索引去查找actor_id为5的列,也就是说:MySQL先在索引上按值查找,然后返回包含该值的数据行.

1.1 索引的类型

MySQL的索引由存储层实现,不同的存储引擎实现方式不同

MySQL支持的索引:

2. 索引的优点

只有索引帮助存储引擎快速查找到记录的好处大于维护索引付出的成本时,索引才是有价值的

3. 高性能索引策略

3.1 独立的列

“独立的列”:索引的列不能时表达式的一部分,也不能是函数的参数.

3.2 前缀索引和索引选择性
3.3 多列索引

在多个列上建立独立的单列索引大部分情况下不能提升MySQL的查询性能.

索引合并策略有时候是一种优化的结果,当更多时候说明了表上的索引建的和糟糕:

如果在explain中看到有索引合并,应该检查一下查询和表结构,确定的hi否已经是最优的,或者在某些时候可以关闭或者忽略索引.

3.4 选择合适的索引列顺序

—> 创建高性能索引(2)




如果有任何问题请联系我:troylin0218@gmail.com
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文连接: https://troylin0218.github.io/High_Performance_MySQL-Section_5.html

Powered by Jekyll · Theme based on solid and Randy's Blog
Made with ❤️ by TianLin