iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0

Day18 聯合索引2

今天主要分享 聯合索引分兩種(其實也是前面提到的主鍵索引/輔助索引或稱二級索引的區分)

  1. PK的聯合索引:不能重複(畢竟就是當PK來用)
  2. 一般的聯合索引:可重複,主要做查詢加速使用。

以及接下來要介紹的聯合索引「最左匹配原則」
假設我們創建了一個聯合索引 (a, b, c)
以下三種查詢可以利用聯合索引
where a=1
where a=1 and b=2 and c=3
where a=1 and b=2
因為有走最左匹配

以下不能利用聯合索引
where b=2
where c=3
where b=2 and c=3

之所以聯合索引失效,是因為 a 欄位在全局是有序的, b c 欄位在局部是有序的

如果直接 where b=3, 這樣在整顆 BTree 掃描的時候,只能整棵樹跑一遍比對
但如果 where a=1 and b=2 的話,會先定位 a=1 的資料rows,接著局部的 b有序,就能加速查詢了!

聯合索引「最左匹配原則」也是面試考題唷,在這邊介紹給大家,不過確實聯合索引目前介紹的還差很多,樓主會在未來把相關知識補足邊加上一些測試案例再更新此篇的!

明天先開始往鎖來介紹!


上一篇
Day17 聯合索引1
下一篇
Day19 悲觀樂觀鎖
系列文
我獨自升級之資料庫從入門到中階20
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言