나는 다음과 같은 쿼리를 가지고 :MySQL의 최적화 쿼리 : 하위 쿼리
SELECT AVG(time) FROM
(SELECT UNIX_TIMESTAMP(max(datelast)) - UNIX_TIMESTAMP(min(datestart)) AS time
FROM table
WHERE id IN
(SELECT DISTINCT id
FROM table
WHERE product_id = 12394 AND datelast > '2011-04-13 00:26:59'
)
GROUP BY id
)
as T
쿼리가 가장 큰 datelast의 값을 가져옵니다과의 길이 모든 ID에 대한 가장 큰 datestart 값 (에서 차감 사용자 세션)를 선택하고 평균을 계산합니다.
외부 쿼리는 결과 시간의 평균을 나타냅니다. 이 쿼리를 최적화 할 수있는 방법이 있습니까? EXPLAIN에서
출력 :
id select_type table type possible_keys key key_len ref rows extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 7
2 DERIVED table index NULL id 16 NULL 26 Using where
3 DEPENDENT SUBQUERY table index_subquery id,product_id,datelast id 12 func 2 Using index; Using where
질문의 정보, EXPLAIN SELECT의 출력 내용 등의 정보가 누락되었습니다. –
원본 게시물이 업데이트되었습니다. – Tony