列的离散型:
COUNT(DISTINCT col):count值越大,离散型越好,则选择性越好,被索引使用的可能性越高。如下图,若对sex加索引,因为离散型不高,可能会用到索引,可能不会。
name和zoneDesc的离散型大于sex,所以加索引优选name和zoneDesc
最左匹配原则:
对索引的关键字进行匹配,按从左到右,不可跳过如若查询abcd,先拿查询的a和索引关键字第一个匹配,若相等则继续下一个,若不相等则进行跟根据大小选择向左或向右。
联合索引:
单列索引:节点的关键字[name]
联合索引:节点的关键字[name,sex],所以单列索引认为是只有一个列的联合索引
联合索引列选择原则:
经常用的列放在前面:最左匹配原则:若联合索引的列是name和sex,查询name或查询name和sex时会使用索引,而查询sex不会使用索引,因为若左边列不匹配,就不会继续匹配右边列。
离散型高的列优先:离散型高的原则,选择离散型低的列,即使加上索引,也不会走索引的
宽度小的列优先:最小空间原则,空间的大小决定这路数,进而决定这B+Tree的深度,进而决定这索引的查询效率。
覆盖索引:
若查询的关键字可以通过索引的关键字来返回,好处:较少访问数据库的次数
网友评论