क्या आपने एक इंडेक्स बनाया था stop_id, departure_time
? क्योंकि departure_time, stop_id
बिल्कुल कुछ नहीं करेंगे।
यह एक वास्तव में . है कठिन - इंडेक्स से निपटने के लिए इसमें हर संभव बुरी चीज है :(
आपके पास एक श्रेणी है, एक OR और एक गैर सन्निहित IN - यह उससे भी बदतर नहीं है।
stop_id, departure_time
आज़माएं और अगर यह मदद नहीं करता है तो आप PostgreSQL पर स्विच करने के अलावा और कुछ नहीं कर सकते।
आप क्वेरी को फिर से लिखने का भी प्रयास कर सकते हैं:
SELECT *
from stop_times
WHERE ( stop_times.stop_id IN(51511,51509,51508,51510,6,53851,51522,51533)
AND departure_time BETWEEN '02:41' AND '05:41'
)
OR ( stop_times.stop_id IN(51511,51509,51508,51510,6,53851,51522,51533)
AND departure_time BETWEEN '26:41' AND '29:41'
)
या:
SELECT *
from stop_times
WHERE ( stop_times.stop_id IN(51511,51509,51508,51510,6,53851,51522,51533)
AND departure_time BETWEEN '02:41' AND '05:41'
)
UNION ALL
SELECT *
from stop_times
WHERE ( stop_times.stop_id IN(51511,51509,51508,51510,6,53851,51522,51533)
AND departure_time BETWEEN '26:41' AND '29:41'
)