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

Cevap