1. 강제적으로 pos 인덱스를 잡아서 order by 에 using filesort 를 사용하지 않는다.
EXPLAIN SELECT * FROM _board USE INDEX ( pos ) WHERE true AND code = 'BD_D C_04' AND chkview = 'Y' ORDER BY pos DESC ;
id |
select_type |
table |
type |
possible_keys |
key |
key_len |
ref |
rows |
Extra |
1 |
SIMPLE |
a |
index |
NULL |
pos |
10 |
NULL |
525656 |
Using where |
2. 기본 인덱스를 잡아서 using filesort 를 사용한다.
EXPLAIN SELECT * FROM _board WHERE true AND code = 'BD_D C_04' AND chkview = 'Y' ORDER BY pos DESC
id |
select_type |
table |
type |
possible_keys |
key |
key_len |
ref |
rows |
Extra |
1 |
SIMPLE |
a |
ref |
code,chkview |
code |
26 |
const |
1 |
Using where; Using filesort |
이렇게 되었을 경우 어떤 쪽이 빠른 속도를 낼까요?
데이타는 약 100만개 정도 되며, 초당 쿼리는 약 100개이상 됩니다.
과연 어떻게 사용해야지 될까요 현재는 1번으로 사용하고 있으며, 2번의 경우 혼자 테스트는 빠르나 실제 사용에는 엄청 늘려집니다.
좋은 의견 부탁합니다.
|