高性能MySQL(第三版) 是在MySQL5.5的基础上进行讲解的。
研读了第六章 查询性能优化的1-2小节,记录一些知识点。
- 索引对如下类型的查询有效:全值匹配、匹配最左前缀、匹配列前缀、匹配范围值、精确匹配某一列并范围匹配另外一列、只访问索引的查询
- 如果不是按照索引的最左列开始查找,则无法使用索引
- 不能跳过索引中的列,如果索引为(a,b,c),只用 a,c 索引列时,MySQL 只能用索引 a
- 如果查询中有某个列的范围范围查询,则其右边所有列都无法使用索引优化查询
- 可见,索引的顺序非常重要,设置索引和使用索引的时候要格外注意
- 哈希索引 可以用 CRC32 做哈希,当然也可以用FNV64做哈希,哈希冲突的情况会比 CRC32 少的多
- 不太常用的索引:空间数据索引(R-Tree)、全文索引
- 索引的优点
- 索引大大减少了服务器需要扫描的数据量
- 因为 B-Tree 索引是按照顺序存储数据,所以索引可以帮助服务器避免排序和临时表
- 索引可以将随机 IO 变为顺序 IO
-
三星索引
三星索引.png
网友评论