Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 기본 키(Primary Key)는 자동으로 인덱싱될까요?

MySQL 기본 키의 자동 인덱싱

네, MySQL에서 기본 키(Primary Key)는 자동으로 인덱싱됩니다. 그 이유는 기본 키가 B-트리(B-tree) 구조로 저장되기 때문입니다. InnoDB와 MyISAM을 포함한 모든 스토리지 엔진은 기본 키에 대한 인덱스 생성을 자동으로 지원합니다.

즉, 별도로 인덱스를 생성하지 않아도 기본 키는 InnoDB, MyISAM 등 대부분의 엔진에서 암시적으로(implicitly) 인덱싱됩니다.

기본 키가 있는 테이블 생성 예제

다음과 같이 기본 키를 포함한 테이블을 생성해 보겠습니다.

mysql> create table DemoIndex
-> (
-> Id int not null,
-> primary key(Id)
-> );
Query OK, 0 rows affected (1.21 sec)

위 테이블에서 Id 컬럼은 기본 키로 설정되었으며, 따라서 명시적인 인덱스 생성 없이도 자동으로 인덱싱됩니다.

추가로 알아두면 좋은 점

특히 InnoDB 엔진은 클러스터형 인덱스(clustered index) 방식을 사용하기 때문에, 테이블 데이터 자체가 기본 키를 기준으로 B-트리 형태로 정렬되어 저장됩니다. 반면 MyISAM은 데이터와 인덱스를 분리하여 관리합니다. 이러한 차이 때문에 InnoDB에서는 기본 키 설계가 조회 성능에 더 큰 영향을 미칩니다.