MySQL單列索引和多列索引

2021-08-28 07:58:20 字數 600 閱讀 5875

在設計mysql表索引的時候,可能有個問題,就是多個單列索引好,還是設計為多列索引好;下面從不同角度分析下這個問題;

1.多個單列索引:

定義:即是在表中在需要索引的字段上為每個字段設計乙個索引;

特點:簡單,索引個數多

2.多列索引:

定義:即是在表中根據查詢需求在多個欄位上設計乙個索引;

特點:稍微複雜,需要考慮索引順序;

3.效能上的對比

4.判斷依據

主要使用mysql的查詢計畫來判斷執行器在查詢資料的時候到底使用哪個索引,主要的依據是根據執行計畫的extra欄位,下面是extra在不同情況下代表的使用不同型別的索引

extra:

5.覆蓋索引

定義:查詢所需資料通過索引可以直接獲取到,不需要回表查詢資料行;

6.索引合併

在索引設計不太合理的時候,mysql可能會對一些查詢執行索引合併

合併標識

觸發索引合併,說明當前索引設計的比較糟糕

MySQL使用單列索引和多列索引

討論mysql選擇索引時單列單列索引和多列索引使用,以及多列索引的最左字首原則。1.單列索引 在效能優化過程中,選擇在哪些列上建立索引是最重要的步驟之一。可以考慮使用索引的主要有兩種型別的列 在where子句中出現的列,在join子句中出現的列。請看下面這個查詢 select age 不使用索引 f...

mysql 單列索引與多列索引

以下的文章主要介紹的是mysql資料庫索引型別,其中包括普通索引,唯一索引,主鍵索引與主鍵索引,以及對這些索引的實際應用或是建立有乙個詳細介紹,以下就是文章的主要內容描述。1 普通索引 這是最基本的mysql資料庫索引,它沒有任何限制。它有以下幾種建立方式 建立索引 create index ind...

mysql單列索引 多列索引的使用

資料庫的索引可以加快查詢速度,原因是索引使用特定的資料結構 b tree 對特定的列額外組織存放,加快儲存引擎 索引是儲存引擎實現 查詢記錄的速度。索引優化是資料庫優化的最重要手段。如果查詢語句使用索引 通常是where條件匹配索引 就會利用樹的結構加快查詢,索引會按值查詢到要查詢的行在表中位置,不...