Unselective indexes and skewed data distribution
本文章是关于索引选择和数据倾斜度关系,以及对应的优化。
概念:
选择性索引:索引具备选择性:如果针对某个字段存在多个数值,且每个数值数据条数比较少。
数据倾斜:表示某个字段的数值存在分部不均,大量集中几个数值。
直方图:在分析表或索引时,直方图用于记录数据的分布。(构造直方图最主要的原因就是帮助优化器在表中数据严重偏斜时做出更好的规划,否则就会出现优化器直接跳过索引任何查询都进行全表查询)
总结:
1、在数据倾斜分布时
a、如果直方图未生效,非选择性索引总是不被使用
b、如果直方图生效,非选择性索在查询稀少数据被使用,查询大量数据不被使用
2、在以下几种条件之下,即使索引不具备选择性,也可以提高效率
a、数据在该字段是倾斜分布
b、直方图在该字段生效
c、应用经常查询该字段稀少值