mysql 인덱스 걸때 어떤 컬럼을 선택하는것이 좋은가요? 정보
mysql 인덱스 걸때 어떤 컬럼을 선택하는것이 좋은가요?본문
막상 인덱스를 걸려고 보니
어떤컬럼에 인덱스를 거는것이 속도향상이 좋을지 잘 모르겠네요
예들어 select 대상이 자주되는 컬럼에다가 거는것이 좋은건지
아님 where이하 조건문에 자주 등장하는 컬럼에 걸어주는것이 더 낳은지...
것도 아니면 자주쓰는 테이블의 컬럼대부분을 인덱스를 모조리 걸어주면 어떨까하는생각도 드네요
고수님들 멋진 답변 기다립니다^^
어떤컬럼에 인덱스를 거는것이 속도향상이 좋을지 잘 모르겠네요
예들어 select 대상이 자주되는 컬럼에다가 거는것이 좋은건지
아님 where이하 조건문에 자주 등장하는 컬럼에 걸어주는것이 더 낳은지...
것도 아니면 자주쓰는 테이블의 컬럼대부분을 인덱스를 모조리 걸어주면 어떨까하는생각도 드네요
고수님들 멋진 답변 기다립니다^^
댓글 전체
select문에서 where뒤에 들어가는 컬럼이 많은거로 걸면 됩니다.
예를 들면
select *from $write_table where wr_id = '$wr_id' AND title = '$title'이런식으로되어 있다면,
wr_id, title이렇게 두개를 묶어 걸면 효과적입니다.
가장 사용이 많이 되는 select query가 무엇인지 미리 통계를 내셔도 되고
index를 걸기 위해서는 그누보드에 들어간 쿼리를 하나하나 조사하시면서 index를 걸면 될 거 같습니다.
예를 들면
select *from $write_table where wr_id = '$wr_id' AND title = '$title'이런식으로되어 있다면,
wr_id, title이렇게 두개를 묶어 걸면 효과적입니다.
가장 사용이 많이 되는 select query가 무엇인지 미리 통계를 내셔도 되고
index를 걸기 위해서는 그누보드에 들어간 쿼리를 하나하나 조사하시면서 index를 걸면 될 거 같습니다.
인덱스는 해당 테이블의 레코드의 값중 10%이하로 있는데이터를 기준으로 잡아주시면 좋습니다
삭제나 업데이트를 위한 기본키인 id값과 검색용도인 index값정도로 잡아주시면 될꺼같습니다.
조건문을 모두 걸필요는 없으며 가장 많은 걸 찾아낼수있으면 됩니다.
위에 하군님이 이야기 해주시는것중 딴지는 아니나
[wr_id, title이렇게 두개를 묶어 걸면 효과적입니다. ] 이부분은 아닙니다.
title 은 인덱스로 좋지도 않을 뿐더러 wr_id가 이미 기본키이며 고유키 이기때문에 레코드중 하나밖에 없다는 이야기 입니다. wr_id에만 pk로 걸려있으면 됩니다.
삭제나 업데이트를 위한 기본키인 id값과 검색용도인 index값정도로 잡아주시면 될꺼같습니다.
조건문을 모두 걸필요는 없으며 가장 많은 걸 찾아낼수있으면 됩니다.
위에 하군님이 이야기 해주시는것중 딴지는 아니나
[wr_id, title이렇게 두개를 묶어 걸면 효과적입니다. ] 이부분은 아닙니다.
title 은 인덱스로 좋지도 않을 뿐더러 wr_id가 이미 기본키이며 고유키 이기때문에 레코드중 하나밖에 없다는 이야기 입니다. wr_id에만 pk로 걸려있으면 됩니다.
두분 답변 모두 감사드립니다 많은 도움 되었습니다^^
좋은 정보 감사합니다.