포럼
최근 .... slow query 때문에 낭패........
2012.02.25 07:42
documents 에 30000개 이상의 데이터를 넣고 나니 limit 으로 만개 이상으로 넘기면 바로 슬로우 쿼리 걸리네요...
그런데 이상하게도 같은 자료를 변환 시켜 실행 시켜보니...
겁나 빠르게 넘어가는데...
아무래도 documents table에 문제가 있어서 그런가 하고 고민중에 있습니다.
혹시 저처럼 slow query때문에 고민하시는 분 계신가요???
이것 저것 해보면서 지금 고민되는것이...
일반 분들중 xe가 느린 이유가 저와 같이 slow 쿼리가 문제이지 않을까 좀 의심되네요...
대략 이런 쿼리를 mysql에 보내면 속도가 알흠답게 나오네요....
SELECT * documents WHERE ( `module_srl` in (12244) and `status` in ('SECRET','PUBLIC') ) and `list_order` <= 2100000000 ORDER BY `list_order` asc LIMIT 29650, 50
아무래도 limit이 문제인데.. 바꾸기에는 너무 많은 작업이 도사리고 그렇다고 서버를 다시 업글하기에는 돈을 사용대비
뻘짓거리고 .....
머리가 하얗게 되네용 ㅠㅠ;;;
댓글 4
-
최기훈.
2012.02.25 10:59
-
푸하라
2012.02.25 12:26
아무래도 근본적인 문제가 있는거 같아용...
단순히 mysql 에서 select * documents where list_order <=2500000 limit 29500 , 10;
를 찍는데 1~2초 걸리네요.....
분명
explain select * documents where list_order <=2500000 limit 29500 , 10; 을 이용하여 들어가봐도
엄청 느리네요...
division을 이용할려고 고려해봤는데..
이것도 문제가 겁나 많은 양의 글을 수정해야 되고...
조금 이해되지 않아서요..
-
최기훈.
2012.02.25 13:49
list_order에 인덱스 걸려있나요?
-
푸하라
2012.02.26 03:03
혹시나 해서 확인 해봤습니다. 인덱스 걸려 있습니다.
아무래도 xe로 개발된 사이트만 limit 10000, 10 넘어가면 바로 느려지는 현상이 있네요...
explain 을 이용하여 데이터를 찍어 보았을때 현상 입니다.
query : explain select * from documents where list_order < 25000000 limit 100000, 10;
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE documents range idx_list_order idx_list_order 8 NULL 26936 Using where
이슈에도 올렸지만
documents 테이블의 status 필드를