Postgresql

我如何知道要為表創建哪些索引?

  • March 2, 2022

有沒有辦法找出最好的方法來知道要為表創建哪些索引?

簡短的經驗法則。(其中一些是自動創建的,但以後可能會手動刪除,具體取決於您的 dbms。不要假設您將始終在 PostgreSQL 上工作。)

  • 索引每個主鍵。
  • 索引每個外鍵。
  • 索引 JOIN 子句中使用的每一列。
  • 索引 WHERE 子句中使用的每一列。
  • 研究您的文件以了解您的 dbms 支持的“深奧”索引選項。

每個主鍵意味著多列主鍵應該有一個覆蓋所有列的索引。如果您聲明多列主鍵,PostgreSQL 將自動創建此索引。

在許多情況下,單個多列索引比多個單列索引提供更好的性能。監控慢查詢並進行測試以確定哪個是哪個。

假設對索引的任何更改都會改善某些數據庫活動並降低其他活動。我發現擁有一組可以在更改索引之前和之後分析的 SQL 語句很有幫助。該集合包括 SELECT、INSERT、UPDATE 和 DELETE 語句。

為您的特定 dbms 研究文件是無可替代的。

  • 創建索引
  • 索引(特別注意關於索引表達式、部分索引和檢查索引使用的部分)

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