슬로우 쿼리 질문드립니다. 이것이 어디서 발생하는 쿼리인지요?
본문
# Time: 230405 21:26:05
# Query_time: 4 Lock_time: 0 Rows_sent: 1 Rows_examined: 351231
select wr_id, wr_subject from g4_write_free where wr_is_comment = 0 and wr_num < '-354793' order by wr_num desc, wr_reply desc limit 1;
이것이 어떤것을 할시에 발생되는 쿼리인가요? 검색은 기본정보에서 3000개로 설정해놓은 상태입니다. 검색은 아닌것 같기도 하고, 업데이트 쿼리가 아니라 쓰기관련은 아닌것같고.. 3만건 이상의 데이터를 가져오는 이런 쿼리가 발생할수 있는것이 글쓰기나 삭제, 정렬, 검색 등 어떤것을 할때 발생할수 있는 쿼리일까요?
해당쿼리로 인하여 슬로우쿼리가 발생하여 사이트가 계속 지연된다는 호스팅업체의 답변을 받았습니다.
도움좀 부탁드리겠습니다.
답변 6
// 윗글을 얻음
$sql = " select wr_id, wr_subject from $write_table where wr_is_comment = 0 and wr_num = '$write[wr_num]' and wr_reply < '$write[wr_reply]' $sql_search order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
// 위의 쿼리문으로 값을 얻지 못했다면
if (!$prev[wr_id]) {
$sql = " select wr_id, wr_subject from $write_table where wr_is_comment = 0 and wr_num < '$write[wr_num]' $sql_search order by wr_num desc, wr_reply desc limit 1 ";
$prev = sql_fetch($sql);
}
여기서
and wr_num < '$write[wr_num]'
를
and wr_id > '$write['wr_id']'
로 바꿔 보세요
index hint를 사용하시거나
index를 추가해 보세요.
Phpmyadmim 등에서
Explain elect wr_id, wr_subject from g4_write_free where wr_is_comment = 0 and wr_num < '-354793' order by wr_num desc, wr_reply desc limit 1;
실행한 결과를 올려 보세요.
이전글 또는 다음글을 추출해 오는 부분입니다.
개인적으로 생각했을 때 없어도 무방한 내용입니다.
해당 쿼리, 이전글/다음글 표시 부분을 모두 삭제하는 방법이 있습니다.
Show index from g4_write_free
실행 결과
Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
---|---|---|---|---|---|---|---|---|---|---|---|
g4_write_free | 0 | PRIMARY | 1 | wr_id | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_num_reply_parent | 1 | wr_num | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_num_reply_parent | 2 | wr_reply | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_num_reply_parent | 3 | wr_parent | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_is_comment | 1 | wr_is_comment | A | 2 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_is_comment | 2 | wr_id | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | list_index | 1 | wr_is_comment | A | 2 | NULL | NULL | BTREE | ||
g4_write_free | 1 | list_index | 2 | wr_num | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | list_index | 3 | wr_reply | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | comment_index | 1 | wr_is_comment | A | 2 | NULL | NULL | BTREE | ||
g4_write_free | 1 | comment_index | 2 | wr_parent | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | comment_index | 3 | wr_comment | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | comment_index | 4 | wr_comment_reply | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_1_idx | 1 | wr_1 | A | 5 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_6_idx | 1 | wr_6 | A | 6929 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_datetime_idx | 1 | wr_datetime | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | ca_name_idx | 1 | ca_name | A | 14 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_num_idx | 1 | wr_num | A | 436570 | NULL | NULL | BTREE | ||
g4_write_free | 1 | wr_reply_idx | 1 | wr_reply | A | 1 | NULL | NULL | BTREE |