Closed isdaniel closed 2 years ago
内部没有本质区别吧, 由于索引内没有版本信息, 无法直接通过索引判断可见性. 需要回表或者通过vm减少回表. 如果都是btree, unique index和normal index, 没啥效率上的区别.
是的 經過我的測試和查找相關文章 unique Index 在某些情境能幫助 QO 建立較優執行計畫,在 postgres 中並沒有像在 sql-server 那樣會有 many to many 優化的事情 感謝德哥回答 我先把 issue 關閉了
理論上 Unique index 會比 non Unique index 效能更加,因為可以提供 query optimizer 此資料不會重複並提供更好的計畫
但經過我一些嘗試並查看執行計畫並無法證明 Unique index 如何證明效能比 non Unique index 佳?
我嘗試了許多查詢 例如 DISTINCT, JOIN (跑 merge join) 照執行結果 Page read 跟 執行指標 Unique index 和 non Unique index 都沒有差異
執行計畫結果
如上
UIX_ID_T3
是 unique index 我反覆跑了 好幾次 non Unique index 跟 unique index 基本沒有差異我有查找許多文章 都只有說如果資料是 Unique 建立 Unique 對於 query optimizer 會比較好 但都沒有相關執行計畫證明 non Unique index 跟 Unique index 執行計畫差異
查詢其中一個連結
想請問是否有大大能用語法跟執行計畫證明 Unique index 如何證明效能比 non Unique index 佳?