SQL 複合主鍵:定義與最佳化
SQL 中的複合主鍵使用多個欄位來唯一標識表中的每一行。 這與單列主鍵形成對比。 要建立一個,請在 PRIMARY KEY
關鍵字後面列出關鍵列。
範例:
假設我們正在建立一個包含 voting
、QuestionID
和 MemberID
欄位的 vote
表。 我們將使用 QuestionID
和 MemberID
作為複合主鍵,確保成員每個問題只能投票一次。
<code class="language-sql">CREATE TABLE voting ( QuestionID NUMERIC, MemberID NUMERIC, vote VARCHAR(255), PRIMARY KEY (QuestionID, MemberID) );</code>
QuestionID
和 MemberID
的組合唯一標識每筆記錄。 至關重要的是,QuestionID
和 MemberID
都不能包含 NULL
值。
索引對效能的影響:
策略附加索引:
經常查詢主鍵之外的列? 為這些列建立單獨的索引是一種效能最佳化策略。
例如,如果 MemberID
在 voting
表的查詢中頻繁使用,則附加索引可能會有所幫助:
<code class="language-sql">CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);</code>
這使用 MemberID
和 QuestionID
來建立唯一索引。 請注意,順序可能與主鍵順序不同,以適應查詢模式。 選擇最佳索引順序取決於最頻繁的查詢類型。
以上是如何在 SQL 中定義和最佳化複合主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!