復合索引的正確理解

2021-09-26 02:15:06 字數 1132 閱讀 1216

復合索引的結構

參考《mysql技術內幕:innodb儲存引擎 第2版》復合索引的結構

首先正確的認識復合索引的結構,非葉子節點上是存在索引值的

例如以a、b欄位建立復合索引,那排列如下

通過葉子節點,就能拿到資料(1,1)、(1,2)、(2,1)、(2,4)、(3,1)、(3,2)

索引使用數量

參考 對於c1、c2、c3、c4建立復合索引

drop table if exists test03;

create table test03 (

id int primary key auto_increment,

c1 char(10),

c2 char(10),

c3 char(10),

c4 char(10),

c5 char(10)

);create index idx_c1234 on test03(c1, c2, c3, c4);

case1 使用乙個索引

case2 不使用索引

case3 使用兩個索引,range範圍查詢和非範圍查詢

case4這是面試被考到的情況

分析:使用索引還是兩個,c1c2。 資料庫先通過c1定位到 c1 = 'a1』的節點(結合上面的b+樹),通過c2定位到 c2 = 'a1』的節點,對該大於節點的區間進行訪問。可見c3這個索引沒有使用。

此外還有索引運用於排序的case,可以參照引用的部落格進行學習

正確理解 clear both

要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳細分析...

正確理解 clear both

原文 要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳...

正確理解 clear both

要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳細分析...