Bende öyle dşünüyorum, barış beyin dediği gibi sorgulama "Select * from
mytable where myfield like 'bişey%" şeklinde gerçekleşiyor dün gece
epeyi ugraştım ve söyle bi çözüm uyguladım;
5 adet arama alanını 1 e düşürüp sadece ad alanına göre arama
yaptırıyorum gene "like 'bişey%'" şeklinde. sorgudan önce count edip max
1000 sınırı koyuyorum şimdi çok düzgün çalışıyor
tabloyu tablo_ax,tablo_bq,...tablo_yz ve tablo_diğer olarak 17
parçaya böldüm enfazla tablo_ax de kayıt oldu 2 milyon kadar ondada bir
skıkıntı olmadı ancak 5 sene içerisinde tablolar sıkısacak o zamanda ssd
gibi donanımsal çözümleri değerlendiricem tabi ssd teknolojisi hala
yerini başka XXsd lere bırakmadıysa :)
yardımlarınız için teşekkür ederim, kolay gelsin..
11.12.2011 12:21, Atıf CEYLAN yazmış:
Hocam index kullanmiyor olabilir. Order yaptiginiz veri kac satirdan olusuyor? Yani
"...where field=123 order by hede" dediniz diyelim, field 123 sartindan donen
en cok deger kac satir? Cok uzun siralamalar var ve sonucunda limitleme yapiyorsaniz
bekleme nedeni o da olabilir. Sorguyu calistirmadan once read ve order buffer degerlerini
yuksek bir degere set etmeniz hatiri sayilir hiz saglayabilir. Bir de birlikte kullanilan
indexleri tek tek degil birlikte indexlemeyi deneyin.
Field1,field2 tek index gibi.
"[email protected]"<[email protected]> wrote:
5 alanı ayrı ayrı index mevcut ancak index yapmadanda denedim sonuç çok
değişmedi
oe-rder kullanıyorum kullanıcının seçeceği 3 alandan birine göre
tablo tipini myisam ve innodb olarak denedim ikiside süreyi kısaltmadı
şimdilik anlık sorgulama yapan 1 kişi var ancak sunucuya talşıyınca 50
civarı olucak
Vedat beyin dediği gibi tabloyu parçalamayı düşünüyorum, bu durumda
mecburen 5 alanı 1 e düşürerek sadece isme göre arama yapıcam ve kayıt
işleminide başharfe göre gerekli tabloya yazıcam
conf dosyası aşağıda, bu dosyayı internetten okuduğum bilgilere göre
değiştirdim
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld]
port = 3306
socket = /var/run/mysqld/mysqld.sock
skip-locking
#key_buffer_size = 384M
key_buffer_size = 1G
max_allowed_packet = 8M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
log-bin=mysql-bin
server-id = 1
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 256M
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
10.12.2011 23:49, Atıf CEYLAN yazmış:
Sorgulama yaptıgınız alanlarda ındex varmı? Bırde mysql ındexlemeyı
eskıden farklı fıeldları ayrı ayrı ındexledıgınızde hafızada map
etmeyı beceremıyordu (sanırım 6-7 yıl önce).
Bu nedenle birlikte kullanılan alanları birlikte indexlemek cok işe
yarıyordu. Tabi bu kadar zamandır mysql kullanmadığım için fazla yorum
yapamıyacağım ancak indexlemede sorun yoksa bu sayıda bir tablodan
sadece where clause ekleyerek sorgu yapmanın bu kadar uzun sürmemesi
lazım. Tabi order, group vb işlemler yapmıyor olduğunuzu farz
ediyorum. Ayrıca mysql konfigurasyonu ve kullandığınız tablo tipi nedir?
Anlık sorgulama yapan kaç kullanıcı var? Bu soruların cevapları da önemli.
10.12.2011 16:00, [email protected] yazmış:
Merhaba arkadaşlar ;
Mysql de 15 milyon olan ve ayda 100 bin artan bir tablomuz var 27
alandan oluşan ve sorgulama arayüzünü delphi7 de yaptım;
5 alana göre arama yapıyorum kullanıcı 5 alanadan istediğini veri
girerek sorgulama yapabiliyor, dönen adet 500 ü geçiyorsa kriteri
artırımasını istiyorum
ancak geri dönüş süreleri çok uzun oluyor minimum 1 dk 40 sn civarı
bu süreyi nasıl minimuma indirebilirm ?
denediklerim
-- tabloyu myisam ile oluşturdum 1dk 40sn -3 dkcivarı sonuç aldım
-- innodb ye çevirdim durum biraz garipleşti 30 sn ile 7 dk arasında
değişti
-- tabloyu bölemiyorum sabit bir kriterim yok (sene gibi 2004, 2005)
aramalarımda 3 alan için "like %" diğer iki alan için "=" kullanıyorum,
5 alanıda ayrı ayrı indexledim.
sistem özellikleri ;
mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using
readline 6.1
test makinam : Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz 3GB RAM
tüm denemeleri bu sistemde yaptım.
--
/**
**@author* Atıf CEYLAN
* Software Developer& System Admin
* http://www.atifceylan.com
*/
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu