Merhaba,

Fri, 24 Sep 2010 02:11:51 +0300, Nuri AKMAN <[email protected]> :

> SQL1 :   SELECT * FROM listeler WHERE islem_tarihi between
> '2010-09-20' AND '2010-12-31'
> SQL2 :   SELECT * FROM listeler WHERE islem_tarihi between
> '2010-09-19' AND '2010-12-31'
> Çalışan SQL'i analiz ettiğimde:
> SQL1 için sadece 5431 satırı işlendiğini görüyorum
> SQL2 için tablonun tüm satırlarının (250.000 satırın hepsinin)
> işlediğini görüyorum. Yani, index devre dışı kalıyor :(

MySQL'in bir "cost optimizer"ı var, eğer tabloyu indekse göre rasgele
aramasının sıralı aramaktan daha uzun süreceğini düşünüyorsa indeks
olmasına karşın kullanmıyor.

http://dev.mysql.com/doc/refman/5.0/en/optimizer-issues.html

                   Doruk

--
FİŞEK ENSTİTÜSÜ - http://www.fisek.com.tr
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap