Mysql 列少的字段不建議使用索引

2022-09-01 11:30:11 字數 490 閱讀 5856

選擇性低(指欄位值種模擬較少,比如性別字段只有男、女)

但經常出現在where條件中的字段到底建不建索引?

不建議建,意義不大

當資料達到一定值時,都會走表掃瞄,是否走索引要看男/女在表占用的比例

在sql2005時計算選擇性的比例為 滿足條件的行數/總行數<=0.7181,會走索引,其它會走表掃瞄,需要考慮特殊情況比如表資料量小<64k,sql2012之後的版本是用列儲存計算大小方式又有所不同

參照選擇性就行了,有興趣可以自己去不同版本中去測試,意義不大,掌握大概就行了

不太建議建,索引同樣會占用硬碟空間的,資料量很大的時候,也是很恐怖的,再從另外乙個方面說下 我的觀點,這是因為這樣的資料會分散在幾乎所有的資料頁中,這樣的話,其實就是要把所有的資料頁都載入到記憶體中了,這樣的話,如果走索引,也是同樣要載入所有的資料頁到記憶體中,那索引這個步驟不就是多餘了嗎,要知道,索引中存在的資料,是在每乙個個資料頁中的,乙個資料頁會存有相應索引範圍的一批資料的,而資料頁是存放在硬碟上的

MySql更新多條資料不建議使用UPDATE語句

我們知道當插入多條資料的時候insert支援多條語句 insert into t member id,name,email values 1,nick nick 126.com 4,angel angel 163.com 7,brank ba198 126.com 但是對於更新記錄,由於update...

c語言中不建議使用的庫函式

以下分析某些危險的庫函式 1 不用gets函式,用fgets代替 2 使用memcpy strncpy 替代strcpy,記得手動新增結束符 0 3 使用strncat來替代strcat,記得手動新增結束符 0 記得計算dsrt陣列中的剩餘空間。該函式無法告知緩衝區溢位,只返回字串的起始位址 而不是...

MySql資料庫的列型別(字段型別)

mysql資料庫的表是乙個二維表,由乙個或多個資料列構成。每個資料列都有它的特定型別,該型別決定了mysql如何看待該列資料,我們可以把整型數值存放到字元型別的列中,mysql則會把它看成字串來處理。mysql中的列型別有三種 數值類 字串類和日期 時間類。從大類來看列型別和數值型別一樣,都是只有三...