trgino adlı üyeden alıntı: mesajı görüntüle
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
en hızlı sorgunun Between yerine in olan seçenek ile geldiğini gözlemledim ve o sekilde islem yaptım.
Sanırım sunucunun da farkı var sunucu değişikliği sonrasında 6-7 sn gibi süreler görülürken şuan 0.0041, 0.0030 lu süreleri görüyorum yüksek veri çekilmesine rağmen