EXPLAIN SELECT DISTINCT `id`, `phone` FROM `ABO3` IGNORE INDEX
(disposition) WHERE active = 1 AND (LEFT(lastupdated,10) = LEFT(NOW(),10)
AND disposition = 1 OR (LEFT(lastupdated,10) <> LEFT(NOW(),10)))
AND  ((((disposition > -6 AND disposition < 6) AND disposition <> -3 AND
disposition <> 3 AND disposition <> 0) AND attempts < 8) AND active= 1)
ORDER BY attempts ASC LIMIT 0,1;

sorgusunun sonuçlarını gönderebilir misiniz?

bir de

show variables like '%sort%';

2010/10/13 Salih BiLGiN <[email protected]>

> Merhabalar,
>
> Debian yüklü ve mysql 5.1 bulunan sunucumda bir sorgumda ORDER BY
> yapmadan herhangi bir performans sorunu yaşamıyorum. Ancak ORDER BY
> eklediğimde CPU %100  oluyor ve uzun sürüyor.  Sorgum aşağıdaki gibidir.
> Kayıt sayısı yaklaşık 300bin tablomda.  Ne yapmamı önerirsiniz?
>
>
> SELECT DISTINCT `id`, `phone` FROM `ABO3` IGNORE INDEX (disposition)
>        WHERE active = 1 AND (LEFT(lastupdated,10) = LEFT(NOW(),10) AND
>        disposition = 1 OR (LEFT(lastupdated,10) <> LEFT(NOW(),10))) AND
>        ((((disposition > -6 AND disposition < 6) AND disposition <> -3
> AND disposition <> 3 AND disposition <> 0) AND attempts < 8) AND active
> = 1) ORDER BY attempts ASC LIMIT 0,1;
>
> _______________________________________________
> 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

Cevap