위사이트 만들고 있는데, 확장변수 검색 및 정렬시 너무 느려서 사용을 못할 정도 입니다.(특히 검색)
db를 쿼리로 직접 입력 하였는데, 혹시 제가 빠뜨린 것이 있는지,
xe_document_extra_vars의 index 설정 문제인지,
힌트좀 알려주실수 있나요?
PHP | PHP 5.3 |
---|---|
CMS | XpressEngine |
위사이트 만들고 있는데, 확장변수 검색 및 정렬시 너무 느려서 사용을 못할 정도 입니다.(특히 검색)
db를 쿼리로 직접 입력 하였는데, 혹시 제가 빠뜨린 것이 있는지,
xe_document_extra_vars의 index 설정 문제인지,
힌트좀 알려주실수 있나요?
답변 정말 감사합니다. 확장변수검색은 윤삼님 확장변수 애드온을 사용하였구요. (카테고리선택처럼보이는 버튼들)
db입력은
INSERT INTO xe_documents( title, contet, module_srl, document_srl 등등) VALUE (해당값들);
으로 입력하였고
document_srl은 getNextSequence(); 로 가져왔습니다.
그다음 확장변수 입력은
위의 document_srl 가져와서 마찬가지로
INSERT INTO xe_document_extra_vars ( module_srl, document_srl, var_idx, lang_code, value, eid) VALUE (해당값들);
이렇게 단순히 넣었는데, 확장변수 입력시 뭔가 추가로 해줘야할 작업이 있는것인지 확신이 없네요.
[수정] XE는 이유여하를 막론하고 쿼리를 직접 실행하기보다는 insertDocument 등 글 등록 용도로 만들어진 함수를 호출하는 것이 정석입니다만, 아무튼 속도와 관련해서 INSERT 부분은 문제가 되지 않습니다. 목록 열람 및 검색에 사용하는 SELECT 쿼리가 문제죠. 윤삼님 애드온에 들어 있는 쿼리가 원래 비효율적인 건지도 모르겠네요.
쿼리를 직접 입력하셨다면 어떤 쿼리인지 알아야 어떤 인덱스를 타고 있는지 알 수 있지요. XE타운 유저분들이 남의 서버에서 돌아가는 쿼리를 독심술로 분석할 수는 없는 일이니...
검색하지 않고 그냥 카테고리 선택만 해도 눈에 띄게 느려지는 것으로 보아, 뭔가 설계가 잘못된 것은 분명합니다. 물론 확장변수로 검색하면 느려지는 것은 XE 종특이므로 가능하면 카테고리를 사용하는 것이 좋습니다만, 글이 기껏해야 1만여개인 듯 한데 이렇게 느리다면 쿼리를 잘못 짰거나 서버 자체가 느릴 가능성이 있죠.