mysql index 관련해서...요 > 자유게시판

자유게시판

mysql index 관련해서...요 정보

mysql index 관련해서...요

본문

wr_good 순으로 뽑으려고하는데요
페이지 맨밑에

run time 0.04초에서
0.45초로 엄청나게뛰더라구요

index를 주면 where 검색에 속도가 빨라지는거 아닌가요?

ALTER TABLE `g4_write_1` ADD INDEX ( `wr_good` )

했는데도 0.45초가 나오더라구요

wr_good 순으로 빨리 정렬하는 방법이 있나요?

$result = sql_query("select * from $tmp_write_table where wr_is_comment = '1' and date_format(wr_datetime, '%Y-%m-%d') between '$startYmd' and '$nowYmd'  order by wr_good desc limit 0, 10");

추천
0
  • 복사

댓글 5개

where절에 들어가는 필드에 인덱스를 줍니다.
이미 wr_is_comment가 인덱스에 걸려있으니까 타고 있을꺼구요.
(확실할 수는 없어요. 자료의 분포도나 다른 구문에 의해서 무용지물이 될 수 있으니 explain해보시길)

위의 구문에서는 아마 order by가  영향을 줄 겁니다. 일반적으로 정순정렬이 역순보다 훨씬 빠르니까요.
글목록에서 wr_num 필드를 음수로 주고 정순정렬을 하는게 이런 이유일 겁니다.

참고로 조회수나 추천수는 많은 순으로 정렬하는 경우가 대부분이어서 디비설계할 때 음수를 줍니다.
예를 들어 조회수 100은 디비에 -100으로 입력해서 출력할때는 절대값으로, 그리고 정렬할 때는 asc로...
index나 옵티마이징, 실행계획 등은 dbms마다 차이가 있으니까(버전별로도 차이가 있음)
mysql.com 사이트에서 확인해보는게 좋을거 같습니다.
http://dev.mysql.com/doc/refman/5.0/en/optimization.html#nolinkhere 참조
© SIRSOFT
현재 페이지 제일 처음으로