[DB 질문] auto increment 값으로 검색과 index 건 id 값의 검색의 속도차이

[DB 질문] auto increment 값으로 검색과 index 건 id 값의 검색의 속도차이

QA

[DB 질문] auto increment 값으로 검색과 index 건 id 값의 검색의 속도차이

본문

[DB 질문] auto increment 값으로 검색과 index 건 필드값의 값의 검색의 속도차이가 있는지요? 

 

자료량은 1천만건이요.

 

저희 팀장님은 인덱스를 필드를 걸면 auto increment 로 한것과 동일한 결과가 나온다는데

전 아닌것으로 알고있어서요.

 

혹시 아시는 분 계신가요?

#DB

이 질문에 댓글 쓰기 :

답변 4

Pk 와 달리 index  을 건 필드에 중복값이 존재한다면
확실하게 속도 차이가 납니다.

Mysql  내부구조을 잊어먹어서 같은 파일안에 pk 와 index 정보를 같이 보관하는지 기억이 가물가물해서 ..

Mysql  의 경우
Innodb,  myisam 이냐에 따라서도  index 속도가 틀리구요.

즉, 차이가 있는게 맞는걸로 알고 있고, pk 와 index  둘다 유일키라 하더라도 내부는 다르게 움직인다라고 기억하고 있습니다.

혹시나 싶어 적는데 pk  에 별도의 index  을 주실 필요는 전혀없습니다..본글에 적으신 레코드을 조회할시 느리다면 쿼리 튜닝으로 해결하세요

추가..저의 기억이 맞네요.
그림이 있는데 지금 못찾아서
아래 링크를 보시구요..db 마다 큰 시각으로 봤을때 내부 처리 흐름이  차이가 있습니다.
Db  파서쪽으로 찾아보세요.

아래는 innodb 의 경우입니다.

http://intomysql.blogspot.kr/2010/12/innodb.html?m=1

http://i.stack.imgur.com/9EcRi.jpg

auto increment 속성을 줄 수 있는 것은 PK만 되요.

 

pk는 index , unique 속성을 가지고 있어요

 

결론 적으로 index와 같은 것이에요.

 

데이터베이스 기초 이론인데요....  데이터베이스를 배운적이 없나 봐요~~~~^^

워낙 유명고수분이라 쉽게 답달기가 겁나네요. ^^;

잘은 모르지만, 벤지님 답변에 숟가락 하나 얹어봅니다. ^^

 

http://stackoverflow.com/questions/14175627/does-a-primary-key-speed-up-an-index 

 

그냥 생각해보면, index에는 중복값이 허용되기에 조금의 차이가 있을것 같고,

위에 따라면, pk에는 null값이 불허되어, NOT NULL 최적화 (이게 엔진 레벨인지, 쿼리를 그렇게 하라는 건지는 모르겠네요.. ^^;) 가 가능하다고 하네요.

 

그리고, 벤지님 말씀대로, innodb의 경우, pk 필드는 물리적으로 정렬저장되어 훨씬 빠른 검색이 가능한것 같네요. ^^

경우에 따라서 auto increment 가 걸린게 더 빠릅니다. (order by 포함)

 

커버링 인덱스도 사용할수 있고,

 

그래서 auto increment​ 가 없는 테이블이라도 가급적 auto increment  필드를 넣는게 좋아요.

(테이블에  auto increment 가 없으면, mysql이 내부적으로 하나 만들어서 씁니다. 내부에서 만들어서 쓰는거니, 사용자는 사용할수가 없죠... 어짜피 만들어질거, 사용자가 직접 만들어두는게 이득)

 

답변을 작성하시기 전에 로그인 해주세요.
전체 827
QA 내용 검색
filter #DB ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT