가능한 결과 집합이 큰 특정 데이터베이스 쿼리에서 성능 문제가 있습니다.
문제의 쿼리 AND
, WHERE 절에 세 가지가 있습니다.
조항의 순서가 중요합니까?
마찬가지로 ASI_EVENT_TIME 절을 먼저 넣으면 (절에서 대부분의 결과가 제거되므로).
쿼리에서 런타임이 향상됩니까?
질문:
SELECT DISTINCT activity_seismo_info.*
FROM `activity_seismo_info`
WHERE
activity_seismo_info.ASI_ACTIVITY_ID IS NOT NULL AND
activity_seismo_info.ASI_SEISMO_ID IN (43,44,...,259) AND
(
activity_seismo_info.ASI_EVENT_TIME>='2011-03-10 00:00:00' AND
activity_seismo_info.ASI_EVENT_TIME<='2011-03-17 23:59:59'
)
ORDER BY activity_seismo_info.ASI_EVENT_TIME DESC
쿼리 설명 :
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+
| 1 | SIMPLE | act...o | range | act...o_FI_1,act...o_FI_2 | act...o_FI_1 | 5 | NULL | 65412 | Using where; Using filesort |
+----+-------------+---------+-------+---------------------------+--------------+---------+------+-------+-----------------------------+
사용 :
PHP 5.2
MySQL 5.0.51a-3 우분투 5.4
프로 펠 1.3
심포니 1.2.5
order by
데이터베이스에 속합니다.