Merhaba,
Aşağıdaki adrese bir göz atmanızı tavsiye ederim. Aldığınız sonuçlarda
bir adım daha öteye gidebilirsiniz.
http://dev.mysql.com/tech-resources/articles/mysql_55_partitioning.html
24-09-2010 15:40, Nuri AKMAN yazmış:
Tekrar Merhaba,
İlginize çok teşekkür ederim. Sadece "force index" kullanarak ve kod
içindeki mysql_close satırlarını silerek sadece gerektiğinde
çalıştırdığım özel bir kontrol sayfamın çalışma süresini 48 saniyeden
27 saniyeye düşürdüm.
Selamlar,
Nuri Akman
2010/9/24 serdar güler <benimadimhicki...@gmail.com
<mailto:benimadimhicki...@gmail.com>>
Merhaba,
USE INDEX optimizer ın seçebileceği birden fazla index mevcut ise
tercih edilirken, optimizer ın index kullanmamayı tercih ettiği
durumlarda durumlarda FORCE INDEX tercih edilmelidir.
Server parametreleri için ise şu parametre şu olmalıdır, bu
parametre bu olmalıdır gibi bir söylem çok da uygun olmaz, server
ın özelliklerine göre, tuttuğunu verinin özelliklerine göre ve
yaptığımız sorgunun özelliklerine göre optimize edilecek ayarlar
var. Eğer MySQL i lisanslı alırsanız beraberinde gelen MySQL
Enterprise Monitor serverdaki bazı parametreleri izleyerek size bu
parametreler konusunda yorumlarda bulunuyor. Ayrıca MySQL in
status bilgilerinde yapacağınız bazı hesaplamalarla aynı yorumları
kendiniz de yapabilirsiniz.
(http://dev.mysql.com/doc/refman/5.1/en/server-status-variables.html)
Kolay gelsin...
2010/9/24 Nuri AKMAN <nuriak...@gmail.com
<mailto:nuriak...@gmail.com>>
Merhaba Serdar Bey,
select * from listeler
*force index ( xxxx_islem_tarihi )*
where islem_tarihi between "2010-08-10" and "2010-12-31"
Tavsiyeniz üzerine yukarıdaki şekilde yapılca index devreye
girdi. Teşekkürler. Ancak, USE INDEX ile sonuc alamadım.
(islem_tarihi alanına xxxx_islem_tarihi adı ile index verdiğim
için force index'e bunu yazdım.)
DİĞER TARAFTAN:
SİZCE, DİĞER SUNUCU PARAMETRELERİM DOĞRU MU? SİZLER NE
ÖNERİRSİNİZ?
Selamlar,
Nuri Akman
2010/9/24 serdar güler <benimadimhicki...@gmail.com
<mailto:benimadimhicki...@gmail.com>>
Selamlar,
MySQL in sistem parametrelerinde dolayı index devre dışı
kalmaz, index in kullanılıp kullanılmayacağına karar veren
mekanizma optimizer , eğer inde i kullanmasının full table
scan e göre daha iyi olacağını düşünüyorsanız. USE INDEX,
FORCE INDEX gibi hintlerle SQL i zenginleştirebilirsiniz.
Kolay gelsin...
2010/9/24 Baris CUHADAR <pard...@gmail.com
<mailto:pard...@gmail.com>>
Tarihleri integer - unixtimestamp olarak saklamanız,
index büyüklüğünüzü azaltıp, indexleme zamanını
kısaltıp, ayrıca sıralama işlemlerini kolaylaştırabilir.
integer 4 byte, datetime 8 byte yer kaplıyor.
Bu işlemler program kodunuzu değiştirmenizi
gerektirecektir.
On 09/24/2010 02:11 AM, Nuri AKMAN wrote:
Arkadaşlar,
MySQL'de listeler adlı bir tablom var ve islem_tarihi
adlı alan için index tanımım var. Tabloda 250.000+
kayıt var.
SQL1 sorguma 5431 kayıt geliyor ve süre: 0.027 saniye,
SQL2 sorguma 5570 kayıt geliyor ve süre: 3.510 saniye
(130 kat daha yavaş !)
SQL1 : SELECT * FROM listeler WHERE islem_tarihi
between '2010-09-20' AND '2010-12-31'
SQL2 : SELECT * FROM listeler WHERE islem_tarihi
between '2010-09-19' AND '2010-12-31'
Çalışan SQL'i analiz ettiğimde:
SQL1 için sadece 5431 satırı işlendiğini görüyorum
SQL2 için tablonun tüm satırlarının (250.000 satırın
hepsinin) işlediğini görüyorum. Yani, index devre
dışı kalıyor :(
Bu durumun MySQL'in server parametrelerinden birinden
kaynaklı olduğunu düşünüyorum. Fakat bulamadım...
Bu durumu nasıl düzeltebilirim?
Selamlar,
Nuri Akman
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
<mailto: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
<mailto:Linux-programlama@liste.linux.org.tr>
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
Linux-programlama@liste.linux.org.tr
<mailto: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
<mailto:Linux-programlama@liste.linux.org.tr>
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
Linux-programlama@liste.linux.org.tr
<mailto: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