Postgresql

需要外鍵索引

  • November 24, 2013

我正在為索引、主鍵和外鍵苦苦掙扎……以及擁有它們的需要。

如果我有兩個表,它們都有一個整數作為主鍵。

第一個表通過 FK 引用第二個表的主鍵。

  • 在這兩個表上,我在 ID 列上都有一個主鍵索引
  • table1.ref_field我在引用第二個表的 PK 時創建了 FK 約束( table2.id
  • 我添加了一個索引table1.ref_field

這是組織這些索引、主鍵和外鍵的最佳方式嗎?

你的設計很好。如果您遇到性能問題(在設計時無法知道),您應該在 table1.ref_field 列上創建一個索引,其順序 (ASC) 與 table2.id 列相同。這將提高表/列之間的連接性能。維護任何索引都有成本,因此您需要權衡該成本與提高性能的好處。

遺憾的是,PostgreSQL 不會在引用其他列的外鍵列上自動創建此類索引,因此您必須自己做。

這是關於同一主題的 StackOverflow 問題:

外鍵和主鍵的 Postgres 和索引

這是一個查詢,可幫助您確定添加此類索引的哪些方面可能受益:

Postgresql:外鍵索引

引用自:https://dba.stackexchange.com/questions/53809