首頁 > 資料庫 > mysql教程 > 如何在 SQL 中定義和最佳化複合主鍵?

如何在 SQL 中定義和最佳化複合主鍵?

Patricia Arquette
發布: 2025-01-10 20:15:42
原創
432 人瀏覽過

How Do I Define and Optimize a Composite Primary Key in SQL?

SQL 複合主鍵:定義與最佳化

SQL 中的複合主鍵使用多個欄位來唯一標識表中的每一行。 這與單列主鍵形成對比。 要建立一個,請在 PRIMARY KEY 關鍵字後面列出關鍵列。

範例:

假設我們正在建立一個包含 votingQuestionIDMemberID 欄位的 vote 表。 我們將使用 QuestionIDMemberID 作為複合主鍵,確保成員每個問題只能投票一次。

<code class="language-sql">CREATE TABLE voting (
  QuestionID NUMERIC,
  MemberID NUMERIC,
  vote VARCHAR(255),
  PRIMARY KEY (QuestionID, MemberID)
);</code>
登入後複製

QuestionIDMemberID 的組合唯一標識每筆記錄。 至關重要的是,QuestionIDMemberID 都不能包含 NULL 值。

索引對效能的影響:

  • 查詢最佳化:複合主鍵,固有索引,在按其任何組成列進行篩選時可提高查詢速度。
  • 鍵順序意義:主鍵定義中的列順序直接影響查詢期間的索引選擇。 需要仔細考慮。

策略附加索引:

經常查詢主鍵之外的列? 為這些列建立單獨的索引是一種效能最佳化策略。

例如,如果 MemberIDvoting 表的查詢中頻繁使用,則附加索引可能會有所幫助:

<code class="language-sql">CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);</code>
登入後複製

這使用 MemberIDQuestionID 來建立唯一索引。 請注意,順序可能與主鍵順序不同,以適應查詢模式。 選擇最佳索引順序取決於最頻繁的查詢類型。

以上是如何在 SQL 中定義和最佳化複合主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板