基數是數據列所包含的不同值的數量。例如,某個數據列包含值1、3、7、4、7、3,那么它的基數就是4。
索引的基數相對於數據表行數較高(也就是說,列中包含很多不同的值,重復的值很少)的時候,它的工作效果最好。如果某數據列含有很多不同的年齡,索引會很快地分辨數據行。如果某個數據列用於記錄性別(只有"M"和"F"兩種值),那么索引的用處就不大。如果值出現的幾率幾乎相等,那么無論搜索哪個值都可能得到一半的數據行。在這些情況下,最好根本不要使用索引,因為查詢優化器發現某個值出現在表的數據行中的百分比很高的時候,它一般會忽略索引,進行全表掃描。慣用的百分比界線是"30%"。(匹配的數據量超過一定限制的時候查詢器會放棄使用索引。盡量不使用會導致索引失效的條件,比如in,用exists子查詢代替,或者in的條件少時可以用union all來代替)。