merhaba,

evet 39000 kayit icin 16 saniye cok uzun. sorgunuzun olabildigince sade
olmasi lazim. ifnull gibi sub-select gibi seyler sorgunuzu cok ama cok
yavaslatabilir. ayrica cekilen sorgu kartezyen carpimlara da sebep
oluyordur (geereksiz yere ayni veriyi coklama). Ugur'un dedigi gibi,
explain yardimci olacaktir.

bunlardan baska, index olmayan alanlardan sorgulama yapiyorsunuzdur.

bir de or keywordu de sikintidir, mumkunse kullanmayin. okudugum bir
makalde or yerine union un daha efektif oldugu yaziyordu.

21 Ekim 2017 Cumartesi tarihinde, Ugur Dokmeci <ugurdokm...@gmail.com>
yazdı:

> Merhaba komutunuzun onune explain yazarsaniz neden yavas oldugunu size
> aciklayacaktir. ancak ifnull yerine null ken sectiginizi bastan joinleyip
> sonra null olmasina gore toplalayarak yaparsaniz hizlanacaktir.diye
> dusunuyorum
>
> saygilarimla
>
> On October 20, 2017 11:18:49 PM GMT+03:00, ibrahim <ibrahim...@gmail.com
> <javascript:_e(%7B%7D,'cvml','ibrahim...@gmail.com');>> wrote:
>>
>> Merhaba JAVA+MySQL(maria db) li bir ön muhasebe yazılımı üzerinde
>> çalışıyorum.stok miktarını aşağıdaki sorgu ile hesaplıyorum ve sorguyu
>> çalıştırdığımda sorgu süresi 16 sn alıyor. acaba sorgu süresi normal mi ?
>> sorguda hata mı yapıyorum ?
>>
>> SELECT products_id as ID,prod_name as 'Ürün Adı',IFNULL((SELECT
>>> sum(urun_adet) FROM `ktgcari_000_fatura_xref` where
>>> product_id=ktgcari_000_stok.products_id and (type=1 or
>>> type=4)),0)-IFNULL((SELECT sum(urun_adet) FROM `ktgcari_000_fatura_xref`
>>> where product_id=ktgcari_000_stok.products_id and (type=2 or
>>> type=5)),0)+IFNULL((SELECT sum(miktar) FROM ktgcari_000_ssayim where
>>> urun_id=ktgcari_000_stok.products_id),0) as 'Stok' FROM
>>> ktgcari_000_stok LIMIT 0,1000
>>
>>
>> (gelen fatura toplamı+gelen irsaliye toplamı)-(giden fatura toplamı+giden
>> irsaliye toplamı)+(sayım fişi toplamı)
>>
>> Veritabanı Bilgileri:
>> stok kartı sayısı: 39000
>> fatura sayısı: 545
>> fatura içeriği tablosu kayıt sayısı: 1800
>> sayım fişi sayısı: 942
>> veritabanı büyüklüğü: 5 MB
>>
>> --
>> --
>> Saygılarımla,
>> İbrahim Halil
>>
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>


-- 
İyi çalışmalar...

Mustafa DUMLUPINAR
https://github.com/seyhanp
_______________________________________________
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