merhaba, eğer sorgu yapılırken özellikle kullanılmasını istediğiniz bir index mevcutsa use index ya da force index gibi index hintleri vererek optimizer ın kullandığı ya da kullanmadığı indexler üstünde manüpülasyon yapabilirsiniz. Ayrıntılı bilgi için:
http://dev.mysql.com/doc/refman/5.1/en/index-hints.html <http://dev.mysql.com/doc/refman/5.1/en/index-hints.html>Kolay gelsin 2010/4/26 Nuri AKMAN <[email protected]> > Arkadaşlar, > > Aşağıdaki sorguyu optimize etmem gerekiyor. Çünkü, sql explain'den > batığımda 300.000 kayıt (yani tüm kayıtlarım) üzerinde çalışıyor. Bu > sorgulardaki satis_tarihi, hareket_tarihi ve iptal_tarihi alanları ayrı ayrı > indexli. > > *select islem_id from satislar where > satis_tarihi > DATE_SUB(CURDATE(), INTERVAL 15 MINUT**E) OR ** > hareket_tarihi > DATE_SUB(CURDATE(), INTERVAL 15 MINUTE) OR > iptal_tarihi > DATE_SUB(CURDATE(), INTERVAL 15 MINUTE)* > > Yaptığım testlerde "field > değer" kriteri konulduğunda index > kullanılmazken, "field between xx and yy" yaptığımda index devreye giriyor. > Yukarıdaki sorgumda her bir satırı BETWEEN ile yapıp denediğimde olumlu > sonucu alamadım, ancak bu satırları teker teker çalıştırınca optimizasyon > gerçekleşiyor. > > Göstereceğiniz ilgiye şimdiden teşekkürler... > > Selamlar, > Nuri Akman > > _______________________________________________ > Linux-programlama mailing list > [email protected] > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > > -- Serdar Güler
_______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
