Merhaba, 
 
Mysql IN özelliği sizin işinizi görecektir.
 
SELECT isim, deger  FROM tablo Where deger IN (deger=2, "1", "0") ORDER BY
deger DESC

  _____  

From: [email protected]
[mailto:[email protected]] On Behalf Of OKAN
Sent: Thursday, March 05, 2009 1:29 PM
To: [email protected]
Subject: [Linux-programlama] MySQL IF() performans problemi


Merhabalar, Mysql uzerinde belli alanlar eger istedigim degerde ise once
almak icin asagidaki gibi IF deyimli bir sorgu kullanıyorum.
 
SELECT isim, deger, IF (deger=2, "1", "0") AS siralama FROM tablo ORDER BY 
siralama DESC
 
Yani deger='2' olan satırları başa alıyorum. Gercek uygulamada bu IF
degimlerinden 6 adet kullandım ve istedigim veriye ulaşabiliyorum.
 
Ancak ne yazık ki, bu Mysql için çok pahalı bir yontem, Mysql performansı
boyle bir sorguda cok kotu bir durum alıyor. (1 sorgu yaklaşık 1sn suruyor
ve mysql anında yavaşlıyor)
 
Amacım, belirledigim 6 alanda eger istedigim kayıtlar varsa onları on plana
almak. Bunu performans sorununu aşarak nasıl başarabilirim?
 
Şimdiden ilgilenen arkadaşlara teşekkür ederim.
 
OKAN ARI

 

  _____  

I am using the Free version of SPAMfighter <http://www.spamfighter.com/len>
.
We are a community of 6 million users fighting spam.
SPAMfighter has removed 7073 of my spam emails to date.
The Professional version does not have this message.

_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap