0
나는 매분마다 증가하는 테이블을 쿼리하는 mysql 작업을하고있다. 또한 쿼리는 제한 절이있는 페이지 매김에도 사용됩니다. 테이블은 상점 웹 사이트에서 사용자 세션을 방문하는 것으로 구성됩니다. store_id, session_id에 대한 인덱스를 이미 추가했습니다. 다음은 쿼리입니다.그룹 별 및 순서를 모두 사용하는 쿼리 최적화
SELECT *,
GROUP_CONCAT(email) as email_id
FROM
(
SELECT *
FROM clickstream
WHERE clickstream.store_id = ''
ORDER BY id DESC
) as clck
GROUP BY session_id
ORDER BY server_now DESC
LIMIT ".$offset.",".PER_PAGE_PRODUCT_COUNT
아이디어가 있으십니까?
EXPLAIN을 사용하여 MySQL이 실제로 인덱스를 사용하고 있는지 확인해 보았습니까? –
하위 쿼리에는 용도가없는 것 같습니다. 바깥 쪽의 클릭 스트림 테이블에서 직접 선택할 수 있습니다 (GROUP_CONCAT에 주문 절을 추가 할 수 있음). 하위 쿼리를 사용하면 MySQL이 GROUP BY 절에 대한 인덱스를 사용하지 못하게됩니다. 또한 session_id에 고유 한 server_now가 있습니까? – Kickstart