mysql的幾種索引

2021-10-23 11:49:56 字數 697 閱讀 5713

mysql的索引使用

概念介紹:

mysql索引分為聚集索引(聚簇索引)和非聚集索引。

聚集索引:物理儲存順序與邏輯順序相同,並且物理儲存上連續存在,每張表只能只有乙個。聚集索引的資料存放在葉子節點上。

非聚集索引:物理儲存順序與邏輯順序不一致,物理儲存上是不連續的,邏輯上是連續的。一張表中可以有多個非聚集索引。非聚集索引的葉子節點存的是資料的指標。

回表:普通索引根據某欄位確定主鍵id之後 ,再通過主鍵查詢整條記錄資料。回表需要進行io磁碟讀寫操作。

主鍵索引

(聚簇索引)葉子結點中會存放當前主鍵所對應行的資料。

關鍵字:primary key

唯一索引

約束重複值,目的主要是避免資料出現重複值,而不是提高訪問效。

關鍵字:unique key

普通索引

(非聚集索引/二級索引)葉子節點存放主鍵資料。回表查詢,回表次數越多則sql執行效率越慢。

關鍵字:key / index

組合索引

(聯合索引/復合索引)最左匹配原則,也就是從索引最左邊的列開始連續匹配,在碰到範圍查詢時會停止匹配,如遇到 like、>、<、between 等範圍查詢。

全文索引

作用於char、varchar、text資料型別的列。myisam和5.6版本後的innodb都支援全文索引。

關鍵字:fulltext key

mysql幾種索引 mysql的幾種索引

為什麼建立索引後,速度就會變快?答 使用索引後,查詢是按二叉樹演算法來查詢到記錄 索引使用的注意事項 索引的代價 1.占用磁碟空間 2.對dml 新增 修改 刪除 操作有影響,變慢 在哪些列上適合新增索引 1.較頻繁的作為查詢條件字段應該建立索引 select from emp where empn...

mysql索引有幾種 MySQL有哪些索引型別

mysql索引型別 索引是一種資料結構,可以是btree,rtree,或者hash結構.btree適合用於查詢某範圍內的資料,可以很快的從當前資料找到下條資料.rtree常用於查詢比較接近的資料.hash結構則適用於隨機訪問的場合,查詢每條資料的時間幾乎相同.顯然,若要查詢某個時間段的資料,用btr...

MySQL索引失效的幾種情況

更準確的說,單列索引不儲存null值,復合索引不儲存全為null的值。索引不能儲存null,所以對這列採用is null條件時,因為索引上根本 沒null值,不能利用到索引,只能全表掃瞄。為什麼索引列不能存null值?將索引列值進行建樹,其中必然涉及到諸多的比較操作。null值的特殊性就在於參與的運...