>데이터 베이스 >MySQL 튜토리얼 >SQL에서 복합 기본 키를 어떻게 정의하고 최적화합니까?

SQL에서 복합 기본 키를 어떻게 정의하고 최적화합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-10 20:15:42432검색

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

SQL 복합 기본 키: 정의 및 최적화

SQL의 복합 기본 키는 여러 열을 사용하여 테이블 내의 각 행을 고유하게 식별합니다. 이는 단일 열 기본 키와 대조됩니다. 하나를 만들려면 PRIMARY KEY 키워드

뒤에 키 열을 나열하세요.

예시:

voting, QuestionIDMemberID 필드가 있는 vote 테이블을 구축한다고 가정해 보겠습니다. QuestionIDMemberID을 복합 기본 키로 사용하여 회원이 질문당 한 번만 투표할 수 있도록 하겠습니다.

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

QuestionIDMemberID의 조합은 각 레코드를 고유하게 식별합니다. 결정적으로 QuestionIDMemberID 모두 NULL

을 포함할 수 없습니다.

성과에 대한 지수 영향:

  • 쿼리 최적화: 본질적으로 색인이 생성된 복합 기본 키는 구성 열을 기준으로 필터링할 때 쿼리 속도를 향상시킵니다.
  • 키 순서 의미: 기본 키 정의 내 열 순서는 쿼리 중 인덱스 선택에 직접적인 영향을 미칩니다. 세심한 배려가 필요합니다.

전략적 추가 색인:

기본 키 외부의 열을 자주 쿼리하시나요? 이러한 열에 대해 별도의 인덱스를 생성하는 것은 성능 최적화 전략입니다.

예를 들어 MemberID 테이블의 쿼리에서 voting가 자주 사용되는 경우 추가 인덱스가 도움이 될 수 있습니다.

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

이것은 MemberIDQuestionID을 사용하여 고유한 인덱스를 생성합니다. 쿼리 패턴에 맞게 순서가 기본 키 순서와 다를 수 있습니다. 최적의 인덱스 순서 선택은 가장 빈번한 쿼리 유형에 따라 다릅니다.

위 내용은 SQL에서 복합 기본 키를 어떻게 정의하고 최적화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.