확장변수로 검색시에 슬로우 쿼리
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
또 비슷한 질문을 하게돼서 죄송합니다.
확장변수로 검색할때 속도가 아주 느린 문제를 질문 드렸었는데요.
디버깅 한 결과물입니다.
Slow Queries
============
01. SELECT COUNT(*) AS `count` FROM (SELECT DISTINCT `documents`.*, `extra_sort`.`value` FROM `xe_documents` AS `documents`, `xe_document_extra_vars` AS `extra_vars`, `xe_document_extra_vars` AS `extra_sort` WHERE `extra_vars`.`value` LIKE ? AND `extra_vars`.`var_idx` = ? AND `documents`.`document_srl` = `extra_vars`.`document_srl` AND `documents`.`document_srl` = `extra_sort`.`document_srl` AND `documents`.`module_srl` IN (?) AND `documents`.`status` IN (?, ?)) AS `subquery`
- Caller: modules/document/document.model.php line 265 (documentModel::getDocumentList)
- Connection: master
- Query ID: document.getDocumentListWithExtraVars (count)
- Query Time: 37.8223 sec
- Result: success
저같은 경우 이게 단순히 검색속도가 문제가 아니고, 검색의 결과물을 메뉴로 빼놓은거라 신경을 안 쓸수가 없네요.
무슨 방법이 있을지요?
댓글 6
해당 게시판의 1) 전체 게시물 수, 2) 확장변수 검색으로 나오는 결과 수는 각각 몇 개쯤 되는지요?
혹시 정렬도 확장변수로 하고 계신가요? 아니면 확장변수는 검색에만 사용하고 정렬은 글번호순(시간순)인가요?
전체게시물 수는 62,000개 정도입니다. 검색 결과수는 50프로 정도라고 보시면 됩니다.
(이해하기 쉽게 링크 달겠습니다. https://www.filmmakers.co.kr/actorsAudition 여기서 '남자' '여자' 검색할때의 상황입니다. 지금은 2.05 버전입니다)
기본정렬은 글번호 입니다.
git pull로 업데이트하고 있습니다.
<columns distinct="distinct"> 이 부분을
<columns> 로 바꿨을 때 속도 차이 또는 검색 결과의 차이가 있는지 확인 부탁드립니다.
한 2분 기다리다가 결국 결과는 보지 못하고 아파치 리스타트하고 2.05로 되돌렸습니다.
(운영중인 사이트여서요)
이게 저만 그런거고 다른 분들은 이상이 없나요?
비슷하게 몇만 건의 게시물이 쌓여 있는 다른 사이트에서 확장변수로 검색해 보았는데 0.5초 정도 걸리더군요. JOIN이 들어가는 쿼리인데다가 확장변수 검색은 풀 테이블 스캔이라;;; 데이터가 많아질수록 느려질 수밖에 없긴 합니다만, 서버 세팅이나 DB 버전 등에 따라 큰 차이가 나는 모양입니다.
메뉴에 들어갈 정도로 검색 빈도가 높은 확장변수라면 그냥 카테고리로 처리하시는 것을 추천합니다. 쿼리 구조를 바꿔서 어느 정도 개선할 수는 있지만, 확장변수 테이블 구조상 근본적인 해결은 어려울 것 같습니다.
연구해보도록 하겠습니다.