冰风飒的博客

mysql中索引的基数是什么意思

mysql中索引的基数是什么意思? 今天在建一个表的索引是,突然发现这个问题。 在网上找了下,原文如下: 基数是数据列所包含的不同值的数量。 例如,某个数据列包含值1、3、7、4、7、3,那么它的基数就是4。也就是索引的列中不重复的数量。 索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果最好。 如果某数据列含有很多不同的年龄,索引会很快地分辨数据行。 如果某个数据列用于记录性别(只有"M"和"F"两种值),那么索引的用处就不大。 如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是"30%"。

posted on 2012-06-07 17:32  冰风飒  阅读(514)  评论(0编辑  收藏  举报

导航