ฉันมีปัญหาเรื่องประสิทธิภาพของการสืบค้นฐานข้อมูลที่มีชุดผลลัพธ์ที่เป็นไปได้จำนวนมาก
แบบสอบถามในคำถามฉันมีสามAND
ในอนุประโยค
คำสั่งของอนุประโยคมีความสำคัญหรือไม่?
เช่นในถ้าฉันใส่ข้อ 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-3ubuntu5.4
ขับเคลื่อน 1.3
Symfony 1.2.5
order by
เป็นของในฐานข้อมูล