基数
某个列唯一键的数量叫作基数。某个列唯一键的数量叫作基数。
当查询结果是返回表中5%以内的数据时,应该走索引;当查询结果返回的是超过表中5%的数据时,应该走全表扫描。
选择性
基数与总行数的比值再乘以100%就是某个列的选择性。
当一个列选择性大于20%,说明该列的数据分布就比较均衡了。
当某个列基数很低,该列数据分布就会不均衡。数据分布不均衡会导致在查询该列的时候,要么走全表扫描,要么走索引扫描,这个时候很容易走错执行计划。
回表概念:当对一个列创建索引之后,索引会包含该列的键值以及键值对应行所在的rowid。通过索引中记录的rowid访问表中的数据就叫回表。回表一般是单块读,回表次数太多会严重影响SQL性能,如果回表次数太多,就不应该走索引扫描了,应该直接走全表扫描。
本文探讨了数据库中基数的概念,即唯一键的数量,以及它如何影响列的选择性。选择性高的列数据分布更均衡,有利于查询性能。当查询返回的数据量小于5%时建议使用索引,反之则推荐全表扫描。此外,回表操作在索引查询中的作用也被提及,高频率的回表可能降低SQL性能,此时应考虑全表扫描。了解这些原理有助于优化数据库查询策略。
2562

被折叠的 条评论
为什么被折叠?



