虛擬機測試,首次執行抓包截圖:

| 特性 | 普通索引 (KEY/INDEX) | 唯一索引 (UNIQUE) |
|---|---|---|
| 允許重複值 | 是 | 否 |
| NULL 值 | 允許多個 NULL | 允許多個 NULL(MySQL 特有) |
| 主要目的 | 加速查詢 | 業務唯一約束 + 加速查詢 |
| 維護開銷 | 略低 | 略高(檢查唯一性) |
-- 普通索引用了前綴(前 16 字節)
CREATE INDEX idx_name_prefix ON users(name(16));
-- 唯一索引用全欄位
CREATE UNIQUE INDEX uk_email ON users(email);
前綴索引導致選擇性下降、無法覆蓋查詢、LIKE 'prefix%' 仍可用但排序失效。**同一欄位比較時,必須對齊索引長度才公平**。
COUNT(DISTINCT LEFT(col, n))/COUNT(*) 接近 1 時可用)。