EXPLAIN <http://dev.mysql.com/doc/refman/5.7/en/explain.html> komutu ile var olan index'i kullanıp kullanmadığını görülebilir. Örnekteki gibi basit sorgularda çok ciddi fayda sağlamasa da daha karmaşık sorgularda optimizasyon için faydalı oluyor.
27 Haziran 2014 08:28 tarihinde Sinan Duman <sinandu...@gmail.com> yazdı: > Selamlar, > > 1. count(1) ile count(*) arasında bir fark yok, buradan bir performans > yakalayamazsın. > > 2. index'lerin kullanımında, en azından oracle'da, null kayıtlar > saklanmaz. dolayısıyla, "is null" işe yaramaz. "is not null" için de durum > aynıdır. ama mysql null kayıtlarını da index'lediğini söylese de, pratikte > işe yaramadığı görülüyor. optimizer tablo için "full scan" yapıyor. bu > yüzden sorgu çok ağır. > burada yapılacak 2 yöntem var; > a) tablo tanımında processed_date'i null olan kayıtları, kullanılmayan bir > değere sabitleyip, "1900-01-01" gibi, not null olarak güncelleyeceksin. > b) where proceessed_date > '1900-01-01' gibi bir değer verip index > kullanımına zorlayacaksın. > > 3. tek bir kaynak yeterli olmuyor, optimizasyon ile ne bulursan > okuyabilirsin. > > kolay gelsin. > > > 27 Haziran 2014 02:13 tarihinde Nuri Akman <nuriak...@gmail.com> yazdı: > >> Arkadaşlar, >> >> *3 sorum var:* >> >> SELECT count(1) AS adet FROM items WHERE processed_time is not null >> >> MySQL kullanıyorum ve yukarıdaki gibi bir SQL'im var. >> >> Tablomda processed_time için index var. >> >> Ancak, count() fonksiyonunu kullandığım SQL'lerin çalışma süreleri >> oldukça uzun. >> >> *Soru 1: *count() kullandığım yerlerde yapabileceğim bir optimizasyon >> var mı acaba? >> >> *Soru 2: *tarih türündeki sahaları WHERE bölümünde kullanırken ne >> yaparsam optimize edebilirim? >> >> *Soru 3: *MySQL'de SQL optimizasyonu konusunda önerebileceğiniz kaynak >> var mı? >> >> *Not: *"Lütfen arama motorlarında ara" demeyin. Elbette aradım, ancak bu >> konudaki sizin tecrübenizi öğrenmek istiyorum. >> >> Selamlar, >> Nuri Akman >> >> _______________________________________________ >> Linux-programlama mailing list >> Linux-programlama@liste.linux.org.tr >> https://liste.linux.org.tr/mailman/listinfo/linux-programlama >> Liste kurallari: http://liste.linux.org.tr/kurallar.php >> >> > > _______________________________________________ > Linux-programlama mailing list > Linux-programlama@liste.linux.org.tr > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > >
_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php