슬로우쿼리 부분에 대해 아시는 고수님들의 도움이 필요합니다.
본문
슬로우쿼리 부분에 대해 아시는 고수님들의 도움이 필요합니다.
카페24호스팅을 사용중인데 슬로우 쿼리에 대한 답변이 이렇게 왔는데요.. ^^
슬로우 쿼리 확인해보셨다 하였는데 현재 500초 이상 600초 이상의 쿼리들이 쌓여있습니다
# Time: 181129 11:24:36
# User@Host: ninesports[ninesports] @ localhost []
# Query_time: 669.064811 Lock_time: 0.000055 Rows_sent: 0 Rows_examined: 3797
SET timestamp=1543458276;
select A.no,A.goods_name,A.sell_type,A.sell_type2,A.img_list,A.icon_list,A.sell_price,A.sell_price2,A.price_text,A.no_sale1,A.no_sale2,B.goods_no,B.category_no,B.seq from goods_list A left join goo
ds_seq B on A.no = B.goods_no and B.category_no='20300' where A.sell_type!=2 and goods_category like '%_2_3_' AnD sLeep(3) ANd '1%';
# Time: 181129 11:33:37
# User@Host: ninesports[ninesports] @ localhost []
# Query_time: 522.180297 Lock_time: 0.000052 Rows_sent: 1 Rows_examined: 2812
SET timestamp=1543458817;
select A.no,A.goods_name,A.sell_type,A.sell_type2,A.img_list,A.icon_list,A.sell_price,A.sell_price2,A.price_text,A.no_sale1,A.no_sale2,B.goods_no,B.category_no,B.seq from goods_list A left join goo
ds_seq B on A.no = B.goods_no and B.category_no='20300' where A.sell_type!=2 and goods_category like '%_2_3_' AnD sLeep(3) ANd '1%';
/opt/mysql/libexec/mysqld, Version: 5.1.73-log (Source distribution). started with:
Tcp port: 0 Unix socket: (null)
Time Id Command Argument
해당 부분 확인 부탁드립니다
이런식으로 왔는데... 어떤 문제를 해결해야 이 부분을 해결할수 있을까요 ??
아는 지인이 쇼핑몰운영중인데... 쇼핑몰이 열리지 않고 계속 로딩중으로 나오다가 갑자기 들어가기도 하고 그런다고 합니다. 혹 이문제를 해결할수 있는 고수님들의 고견이 필요합니다. ^^
답변 4
해당 쿼리 실행되는 페이지 찾아서
and goods_category like '$goods_category';
라면
$goods_category = get_search_string($goods_category);
후 해당 쿼리 실행되게 하시면 될거 같습니다.
goods_category like '%_2_3_' AnD sLeep(3) ANd '1%';
이붑분은 카테고리 검색에 '%_2_3_' AnD sLeep(3) ANd '1%' 이런식으로 일부러 넣은것 같습니다.
정상적인 검색은 아니고 다른 사용자나 로봇이 의도적으로 사이트 지연시키는 것 같습니다.
카테고리 검색시 검색어 체크하는 부분 입력하셔야 될거 같습니다.
common.lib.php 의 get_search_string 함수 참고하시면 될거 같습니다.
쿼리 중간의
sleep(3) 을 굳이 설정해두신 이유가 있으신가요?
구글링을 해보면
sleep(3) 을 할경우 실제는 3초보더 더 긴 시간이 sleep 된다고 하네요
그리고, like 검색에서
goods_category like '%_2_3_'
이부분은 지연요소가 될수있습니다.
쿼리를 나눠서 조회하시는것도 방법입니다.
두분 모두 감사합니다. 도움을 주셔서... ^^
많은 도움이 되었습니다.
하시는 일과 일상에 행운이 가득하시길 바랍니다.