ard arda aynı sorguları test için gönderdiğinizde, sorgular sql cache den dönebilir o yüzden gerçek sonuç çıkmayabilir. bunun önüne SQL_NO_CACHE ile geçebilirsiniz.
select SQL_NO_CACHE * from table where 1=1 gibi
verdiğiniz örneklerde id nin uniq indexinin olduğunu varsayarsak ve oracle ın dediğine göre en hızlı sonuç vereninin
SELECT * FROM table WHERE id BETWEEN 1 and 4;
olması gerekir.
fakat en iyi sonucu * olarak değilde istediğiniz sütünları isteyerek görebilirsiniz. select veri, veri2, veri3 gibi
tüm bunların yanında explain ile de sorgunuzun nasıl çalıştığını hangi indexleri kullandığını veya kullanmadığını görebilirsiniz.
sorgunuzun başına explain eklemeniz yeterli, explain select * from table where between 1 and 4