type
status
date
slug
summary
tags
category
icon
password
當查詢想要透過 index 優化時,需要遵循最左前綴的原則,意即若有 index(A,B),查詢條件只有 A = ?A = ? AND B = ? 才能吃到這個 indexB = ? 的條件則無法利用到這個 index
從 MySQL 8.0.13 開始新增了一個優化,讓某些情況下 B = ? 的條件可以透過這個 index 優化
 
實現方式:1. 在索引前綴(f1) scan 出 distinct 值2. 對其餘索引欄位(f2),建構subrange scan簡單來說,就是會將其轉化為多個子範圍掃描,以此範例有點類似以下查詢:
 
主要限制:
1. 必須是複合索引,EX:KEY(A,B,C)
2. 只使用了一張表
3. 不能有 group by 和 select distinct
4. 不能回表,意即 query 中的select、where 只有使用該 index(含pk) 的欄位
 
參考:
  1. MySQL 官方文檔
  1. MySQL WL#11322
  1. 數據庫內核月報(2019/05)