SQL最佳化必懂概念(一):基數

a960549548發表於2024-03-07

某個列圍一鍵( Distinct_ Keys )的數量叫作基數。 比如性別列, 該列只有男女之分, 所以

這一列基數是 2 。主鍵列的基數等於表的總行數。基數的高低影響列的資料分佈。一般選擇性大於 20% 的就是均勻分佈的。

求一個表總行數:

Select count(*) from table;

求一個列基數:

Select count(distinct colname) from table;


Select count(*),count(distinct colname) from table;


基數越低說明重複資料越多,基數越高說明重複資料越少

在做最佳化的時候不能只看基數,還要看資料分佈,如果裡面某個使用者佔總行數多數,就算基數高也得走全表掃。

在做 SQL 最佳化的時候, 如果懷疑列資料分佈不均衡, 我們可以使用

select 列,count(*) from 表 group by 列 order by 2 desc;

檢視列的資料分佈


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70013625/viewspace-3008298/,如需轉載,請註明出處,否則將追究法律責任。

相關文章