常理來說,unique index 在做查詢的時候,可以想像約等同於 SELECT 1 AS one LIMIT 1
,因為不需花費力氣找尋其他相同的數據,所以理論上會快一些。
查詢計畫
舉例來說: Query plan 會在某些查詢有效的使用 unique index ,而不是普通索引
比方在某個有包含 unique index 的 table, 使用 SELECT DISTINCT
, query plan 會發出一個跳過對結果進行排序並消除重複的 query plan,即便這個 query 沒有明確的用到 unique index。
其他影響
有 unique index 的部分,INSERT / UPDATE / DELETE 速度會稍微慢一些,因為在每次更動資料時都會檢查這個值是否重複。
結論
看了一些相關的資料,發現並沒有直接確定的答案,通常是取決於你的查詢內容,Query plan 會盡可能的找到可以提高性能的 index 來優化搜尋。