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

Cevap