본문 바로가기
IT/서버개발캠프

[서버개발캠프] MYSQL DB 테이블 PK 선정 이슈

by GGT 2020. 1. 27.

http://stackoverflow.com/questions/2103322/varchar-as-foreign-key-primary-key-in-database-good-or-bad

 

VARCHAR as foreign key/primary key in database good or bad?

Is it better if I use ID nr:s instead of VARCHARS as foreign keys? And is it better to use ID nr:s isntead of VARCHARS as Primary Keys? By ID nr I mean INT! This is what I have now: category table:

stackoverflow.com

 

현재 내가 맡은 역할인 맞춤법 서버의 DB 환경 설정을 하던 중에

단어 테이블에 대한 스키마를 작성 중인데

따로 int형 PK를 두는 것이 맞는지 아니면 

어차피 Unique한 값인 단어(Varchar)이 PK로 두는 것인지 몰라 자료 검색 중에 찾은 게시물

 

Varchar의 경우 White Space로 인해 같은 문자열이라도 다르게 인식할 여지가 있으므로

int형을 PK로 두고 단어를 Unique Key로 두는게 바람직하다는 뜻

 

그리고 추가 조사로는 PK의 auto incremental 속성을 잘 이용하고

각 타입에 not null 속성을 사용하면 null값을 유지하는데 사용하는 비용을 줄일 수 있다고 한다. 

 

추가적으로 단어(문자열)를 검색하는 데에도 LIKE가 아닌 다양한 방식으로 

쿼리 처리 속도를 줄일 수 있다는 데 이 부분은 먼저 완성시킨 후에

해결해야겠다.

반응형

댓글