Postgresql
需要外鍵索引
我正在為索引、主鍵和外鍵苦苦掙扎……以及擁有它們的需要。
如果我有兩個表,它們都有一個整數作為主鍵。
第一個表通過 FK 引用第二個表的主鍵。
- 在這兩個表上,我在 ID 列上都有一個主鍵索引
table1.ref_field
我在引用第二個表的 PK 時創建了 FK 約束(table2.id
)- 我添加了一個索引
table1.ref_field
這是組織這些索引、主鍵和外鍵的最佳方式嗎?
你的設計很好。如果您遇到性能問題(在設計時無法知道),您應該在 table1.ref_field 列上創建一個索引,其順序 (ASC) 與 table2.id 列相同。這將提高表/列之間的連接性能。維護任何索引都有成本,因此您需要權衡該成本與提高性能的好處。
遺憾的是,PostgreSQL 不會在引用其他列的外鍵列上自動創建此類索引,因此您必須自己做。
這是關於同一主題的 StackOverflow 問題:
這是一個查詢,可幫助您確定添加此類索引的哪些方面可能受益: