高性能MySQL 第五章 Part1
索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能则会急剧下降。
索引类型
1、B-Tree 索引
可用于全值匹配、最左前缀匹配、列前缀匹配、范围值匹配、精确匹配某一列并范围匹配另外一列、只访问索引的查询
2、哈希索引
只适用于精确匹配查询,不适用于范围查询
3、空间数据索引
可以有效地使用任意维度来组合查询
4、全文索引
做的事情类似于搜索引擎,而不是简单的 where 条件匹配
索引的优点
1、所以大大减少了服务器需要扫描的数据量
2、所以可以帮助服务器避免排序和临时表
3、所以可以将随机 I/O 变为顺序 I/O
索引并不总是最好的解决方案
总的来说,只有当索引帮助存储引擎快速查找到记录带来的好处大于其带来的额外工作时,索引才是有效的。
对于非常小的表,大部分情况下,简单的全表扫描更高效
对于中到大型的表,索引就非常有效
对于特大型的表,简历和使用索引的代价将随之增长。这种情况下,则需要一种技术可以直接区分出查询需要的一组数据,而不是一条记录一条记录地匹配,比如可以使用分区技术