假設我們有一個PRODUCT表,ORDER表和一個連接表PRODUCT_ORDER。
我用下面的腳本創建了一個結點表:
我用下面的腳本創建了一個結點。
CREATE TABLE public. "PRODUCT_ORDER" (
product_id bigint NOT NULL,
order_id bigint NOT NULL,
CONSTRAINT "PRODUCT_ORDER_PK" PRIMARY KEY (product_id, order_id),
CONSTRAINT "FK_TO_PRODUCT" FOREIGN KEY (product_id)
REFERENCES public. "PRODUCT" (id) ON DELETE CASCADE,
CONSTRAINT "FK_TO_ORDER" FOREIGN KEY (order_id)
REFERENCES public. "ORDER" (id) ON DELETE CASCADE
);
此外,還自動創建了一個PK的索引:
CREATE UNIQUE INDEX "PRODUCT_ORDER_PK" ON public. "PRODUCT_ORDER" USING btree (product_id, order_id)
預計這些表實際上只有讀操作,我希望對結點表進行智能索引。
通常情況下,我還會為外鍵手動創建一個索引,例如為一對多關系創建索引,像這樣:
CREATE INDEX "index_name" ON schema_name. "table_name" (fk_column_name)。
我的問題是。除了PK-index之外,我是否需要為外鍵創建兩個索引?
CREATE INDEX "FK_TO_PRODUCT" ON public;
CREATE INDEX "FK_TO_ORDER" ON public;
還是說這是不必要的,沒有意義的,PK的索引就足夠了?
總的來說,我對如何智能地/正確地為多對多關系的結點表建立索引感興趣?
uj5u.com熱心網友回復:
不,你不需要創建兩個額外的鍵。 你的主鍵索引將適用于第一個鍵(product_id)以及這對鍵。
你需要在order_id上建立一個額外的索引。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324745.html
標籤:
