Postgresql

什麼時候應該在 PostgreSQL 上使用索引?

  • December 13, 2021

companyUuid在我的 Java(Spring Boot 應用程序)中,我有以下實體定義,它通過屬性與公司實體有關係。我還將讓使用者按name欄位搜尋。我們不使用實體關係註釋,例如@OneToMany,…

@Entity
public class DemoEntity {

   @Id
   private long id;

   private UUID uuid;

   private UUID companyUuid;

   private String name;

   // code omitted for brevity
}

**1.**由於這個表有一個FK companyUuid,我應該為它添加一個索引嗎?如果是這樣,以下索引定義是否正確?

@Table(indexes = {
   @Index(unique = true, name = "company_uuid_key", columnList = "companyUuid")
})

**2.**當使用者按欄位搜尋Demo實體記錄時name,我是否也應該為每個搜尋欄位添加索引(對於這種情況,pnlyname欄位)?如果是這樣,以下索引定義是否正確?

@Table(indexes = {
   @Index(unique = true, name = "name_key", columnList = "name")
})

您是否應該索引作為外鍵的欄位

$$ fields in $$其他表? 的。

該索引是否必須是唯一的? 可能不是。 考慮一個城鎮表,每個城鎮都存在於一個州內。

許多不同的城鎮將出現在一個特定的州內。狀態表上的主鍵(根據定義)將是唯一的

$$ within that table $$但相同的州 ID 會出現在許多城鎮記錄中。 如果您要允許按名稱搜尋,那麼您也應該對其進行索引。但是,請考慮這些名稱是否是唯一的

$$ within that table $$. 從上面的例子來看,有很多城鎮叫做“伯明翰”,但每個城鎮都在不同的州。

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