인프런 커뮤니티 질문&답변

나뭇잎님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

기본으로 설정되는 인덱스 (PK)

테이블에 기본키가 없을때

24.08.03 16:47 작성

·

91

0

강의를 듣다 궁금한 점이 생겨서 글을 남김니다.

보통 테이블을 생성할때 당연하게 pk를 지정해 주었는데 pk가 없는 테이블도 생성을 하나요? 생성은 되는것 같은데 똑같이 테스트를 해보니 따로 정렬한는 기준이 없어서 그런지 id 7번을 2번으로 바꿔도 들어온 순서대로 위치가 맨 마지막에 있는것을 확인했습니다. pk가 없는 테이블도 있는지 있으면 성능이라던지 차이점이 뭔지 궁금합니다.

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

2024. 08. 03. 19:54

안녕하세요 나뭇잎님!

데이터를 식별하기 위해서는 PK가 필요하기 때문에,

일반적으로 PK가 없는 테이블을 생성하는 경우는 드뭅니다!

 

하지만 시스템 상으로 PK 없이 테이블을 생성할 수는 있을거에요.

PK가 있는 테이블과 없는 테이블의 차이점을 비교하자면

인덱스가 있고 없고의 차이점과 동일합니다:D

즉, PK가 있는 테이블은 쓰기 작업의 성능이 살짝 떨어질 수 밖에 없습니다.

하지만 정렬이 미리 되어 있기 때문에 PK를 기준으로 데이터를 조회해올 떄는 성능이 빠를거에요!

 

이 외로 궁금하신 점 생기시면 또 질문 남겨주세요~~~