就一起來聊一聊mysql索引。
什麼是索引?
索引是為來加速對錶中資料行中的檢索而建立的一種分散的資料結果,時針對表而建立的,它是由資料頁面以外的索引頁面組成,每個索引頁中的行都含有邏輯指標,以便加速檢索物理資料其實,索引的概念大家都很清楚,也知道索引能夠提公升查詢效率,但大部分童鞋在怎麼建索引,建在哪些欄位上有以下常見誤解:
索引區分度
在說上述問題之前,我們先來看看另乙個概念,就是區分度。
區分度: 指字段在資料庫中的不重複比區分度在新建索引時有著非常重要的參考價值,在mysql中,區分度的計算規則如下:
欄位去重後的總數與全表總記錄數的商。例如:
select count(distinct(name))/count(*) from t_base_user;結果如下:
count(distinct(name))/count(*)
1.0000
其中區分度最大值為1.000,最小為0.0000,區分度的值越大,也就是資料不重複率越大,新建索引效果也越好,在主鍵以及唯一鍵上面的區分度是最高的,為1.0000。在狀態,性別等字段上面的區分度值是最小的。 (這個就要看資料量了,如果只有幾條資料,這時區分度還挺高的,如果資料量多,區分度基本為0.0000。也就是在這些欄位上新增索引後,效果也不佳的原因。)
值得注意的是: 如果表中沒有任何記錄時,計算區分度的結果是為空值,其他情況下,區分度值均分布在0.0000-1.0000之間。
如何建索引
學會MySQL索引
就一起來聊一聊mysql索引。什麼是索引?索引是為來加速對錶中資料行中的檢索而建立的一種分散的資料結果,時針對表而建立的,它是由資料頁面以外的索引頁面組成,每個索引頁中的行都含有邏輯指標,以便加速檢索物理資料 其實,索引的概念大家都很清楚,也知道索引能夠提公升查詢效率,但大部分童鞋在怎麼建索引,建在...
mysql 索引 手冊 MySQL 索引
mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...
mysql非同步索引 MySQL索引
一 為什麼要使用索引 優化查詢,減少掃瞄的錶行數。打個比方,索引的作用就和查新華字典,字典的索引的作用的一樣的。二 索引的型別 1 索引是在儲存引擎中實現的,而不是在伺服器層中實現的。所以,每種儲存引擎的索引都不一定完全相同,並不是所有的儲存引擎都支援所有的索引型別。2 如果使用的是組合索引 即有多...