[Linux-programlama] Re: MySQL: sorgu analizi

---------

[Linux-programlama] Re: MySQL: sorgu analizi

From: Anıl KARADAĞ <anil.karadag_at_gmail.com>
Date: Sun, 06 Apr 2008 22:57:58 +0300
Message-Id: <1207511878.6509.8.camel@karadag>

Bir sorum daha olacaktý tabloma gunluk yaklasýk 1500 yeni kayýt
girmektedir. select sayýsý insert/updated den cok fazla bu yuzden yeni
bir index ekleyebilirim.

Ancak innodb onerisi uzerine
http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

deki sonucu inceledim. insert iþlemi için Myisam a gore daha hýzlý ama
myisam da read iþleminde daha hýzlý.

tablom read iþlemi için daha cok kullnýlýyor ama insert iþlemindeki bir
gecikme 1 saatlik periyod ile kayýt alan bir sistemde kayt alýmlarýný
birbirine yaklaþtýrýyor.

Ek bir soru diyelim ki myisam ile yoluma devam ettim suan 4 tane index
im oldu. her yeni kayýtta bu indexler yeniden oluþuyor bu ciddi bir
gecikmeye yol açmaz mý?

Paz, 2008-04-06 tarihinde 21:52 +0300 saatinde, Ismail ASCI yazdý:
> Merhabalar,
>
> 2008/4/6 Anýl KARADAÐ <anil.karadag_at_gmail.com>:
> harflendirme yapayým derken hatalar yapmýsým. indeks kullanmak
> insert
> islemlerinde sorun yaratmýyor mu? Yani suan 3 tane indexli
> alaným var
> bunu arttýrmak mantýklý mý?
>
> index kullanmak tabiki daha fazla io ve daha fazla cpu anlamina
> geliyor. Ancak burada verilmesi gereken stratejik karari kullandiginiz
> uygulamaniza gore siz vermelisiniz. Mesela toplam insert/update ve
> select sayilarinin birbirlerine oranlarina bakarak karari
> verebilirsiniz. Eger select'lerin orani insert/update'lere gore daha
> fazlaysa daha fazla index kulllamanin pek sakincasi olmaz diye
> dusunuyorum. Yine index'lerinizi uygulamanizda en sik kullanilan
> sorgulara gore olusturmaniz faydali olacaktir.
>
>
>
> "KEY 'e' USING BTREE ('e')"
>
>
> ben sorgularda arama yaptýgým 3 alanda index kullnýyorum.
> datetime
> alanýnda index yok. O kýsmýný yanlýþ göstermisim.
>
> yardýmlarýnýz icin tesekkurler ancak 350.000 habere mysql in
> bu kadar
> yavas tepki vereceðini tahmin edemezdim.
>
> Birazda olayin dogasi geregi boyle oluyor. Uzerinde index olmayan
> alanlarda sorgu yaptiginizda biraz kacilinilmaz oluyor bu durum.
> Deneyerek ve explain komutunu yaninizdan ayirmadan yasayarak efektif
> cozumler uretebilirsiniz bence...
> Ayrica su [1] adresteki cozum onerilerini deneyebilirsiniz.
>
> [1]
> http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/
>
> Kolay gelsin.
>
>
>
>
> Cts, 2008-04-05 tarihinde 22:40 +0300 saatinde, Ismail ASCI
> yazdý:
>
> > tekrar merhabalar,
> > gonderdiginiz tablo yapisinda mysql olusturdugunuz
> index'leri
> > kullanmayacaktir. yani onlari olusturmus olmanizin bir
> faydasi yok.
> > basitce f ve e alanlari uzerinde key yeni (f, e) seklinde
> bir index
> > olusturmaniz oldukca faydali olacaktir diye dusunuyorum.
> > bu asamadan sonra
> > 1. sorgunuzda order by random() yerine
> > select a, b, c, random() as x ......order by x seklinde
> deneyebilir
> > misiniz?
> > 2. ve 3. sorgular da ise benim aklima gelen pek birsey yok
> acikcasi
> > esit degil ve not null pek hos durmuyorlar orada :)
> >
> > kolay gelsin.
> >
> > 2008/4/4 Anýl KARADAÐ <anil.karadag_at_gmail.com>:
> > harflendirmeleri duzenledim
> >
> > tablo1:
> >
> > 'a' mediumint(11) NOT NULL auto_increment,
> > 'b' text
> > 'c' text
> > 'd' text
> > 'e' datetime,
> > 'f' varchar(20) ,
> > 'g' varchar(20) ,
> > PRIMARY KEY ('a'),
> > KEY 'e' USING BTREE ('e'),
> > KEY 'b' ('b'(50),'c'(250))
> > ) ENGINE=MyISAM
> >
> > SELECT a,b,c FROM tablo1 WHERE f='x' AND
> > > cast(e as date)= '".$date."' ORDER BY
> rand() LIMIT
> > 10
> > >
> > > 2-SELECT COUNT(*) FROM tablo1 WHERE f='x'
> and
> > > cast(e as date)= '".$date."' and (c != ''
> or c is
> > not null)
> > >
> > > 3-SELECT MAX(a) FROM tablo WHERE f=
> '".$cat." ' and
> > > cast(e as date)= '".$date."' and (c != ''
> or c is
> > not null)
> >
> > Sorgu cýktýlarý ile ilgili ne gibi bir acýklama
> koyabilirim
> > anlayamadým
> > tam olarak?
> >
> > Cum, 2008-04-04 tarihinde 23:39 +0300 saatinde,
> Ismail ASCI
> > yazdý:
> >
> > > Merhaba,
> > > index'ler hangi alanlarda tanimlilar?
> > > cast(b as date) kullanmanizin nedeni nedir?
> > > ayrica ORDER BY rand() pek efektif sonuclar
> doguracak gibi
> > gorunmuyor.
> > > tablonuzun yapisini ve bu uc sorgunun explain
> ciktisini
> > > gonderebilirseniz daha fazla yardimci olmaya
> calisabilirim.
> > > kolay gelsin..
> > >
> > > 2008/4/4 Anýl KARADAÐ <anil.karadag_at_gmail.com>:
> > > Herkese iyi aksamlar MySQL kullanan ve
> tablolarýnda
> > 300.000
> > > satir ve
> > > uzeri veriye sahip ve veritabanindan
> sorumlu
> > uyelerimizin
> > > dikkatine
> > >
> > > Suan 350.000 satýr veri iceren bir tablom
> > bulunmaktadýr. 1
> > > primary key
> > > ve 2 tane normal index içermekte. Arama
> yaptigim
> > diger bircok
> > > kolonda
> > > index bulunmuyor.
> > >
> > > 1-SELECT a,b,c FROM tablo1 WHERE a='x' AND
> > > cast(b as date)= '".$date."' ORDER BY
> rand() LIMIT
> > 10
> > >
> > > 2-SELECT COUNT(*) FROM tablo1 WHERE a='x'
> and
> > > cast(b as date)= '".$date."' and (c != ''
> or c is
> > not null)
> > >
> > > 3-SELECT MAX(e) FROM tablo WHERE a=
> '".$cat." ' and
> > > cast(b as date)= '".$date."' and (c != ''
> or c is
> > not null)
> > >
> > > ve benzeri sorgulari calistirdigim php
> sayfasi cok
> > gec
> > > yukleniyor. Bu
> > > duruma nasýl cozum bulabilirim. Belirtmen
> gereken
> > bir nokta
> > > tablonun
> > > dinamik olusudur. Gunluk ortalama bir
> sayida kayit
> > > girilmektedir.
> > >
> > > Kayit girilirken db uzerinde cesitli
> sorgular
> > yapilmaktadir.
> > > Kisacasi
> > > sistemde veri girisi sorgusu ve
> goruntuleme
> > sorgularý ayni
> > > zaman
> > > diliminde gerceklesmektedir gunun belirli
> bir
> > diliminde.
> > >
> > > Cluster konusuna bakiyorum. Onerilerinizi
> > bekliyorum.
> > >
> > >
> _______________________________________________
> > > Linux-programlama mailing list
> > > Linux-programlama_at_liste.linux.org.tr
> > >
> >
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> > >
> > >
> > >
> > > --
> > > Ismail ASCI
> > > Pozitim Technology
> > > www.pozitim.com
> > >
> > > -----BEGIN PGP PUBLIC KEY BLOCK-----
> > > Version: GnuPG v1.4.2.2 (GNU/Linux)
> > >
> > >
> >
> iFQEIBECABQFAkRIDJMNHQBiYWNrdXAgY29weQAKCRBgYvyi4RxNdcnIAJ9vweb8
> > >
> vUH9m3a2aQHyAfeo0oJtlACfQiqcbHvdBtrxylRh42G2xea7gFM=
> > > =Xy4T
> > > -----END PGP PUBLIC KEY BLOCK-----
> > > _______________________________________________
> > > Linux-programlama mailing list
> > > Linux-programlama_at_liste.linux.org.tr
> > >
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> >
> > _______________________________________________
> > Linux-programlama mailing list
> > Linux-programlama_at_liste.linux.org.tr
> >
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> >
> >
> >
> >
> > --
> > Ismail ASCI
> > Pozitim Technology
> > www.pozitim.com
> >
> > -----BEGIN PGP PUBLIC KEY BLOCK-----
> > Version: GnuPG v1.4.2.2 (GNU/Linux)
> >
> >
> iFQEIBECABQFAkRIDJMNHQBiYWNrdXAgY29weQAKCRBgYvyi4RxNdcnIAJ9vweb8
> > vUH9m3a2aQHyAfeo0oJtlACfQiqcbHvdBtrxylRh42G2xea7gFM=
> > =Xy4T
> > -----END PGP PUBLIC KEY BLOCK-----
> > _______________________________________________
> > Linux-programlama mailing list
> > Linux-programlama_at_liste.linux.org.tr
> > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
>
>
> --
> Ismail ASCI
> Pozitim Technology
> www.pozitim.com
>
> -----BEGIN PGP PUBLIC KEY BLOCK-----
> Version: GnuPG v1.4.2.2 (GNU/Linux)
>
> iFQEIBECABQFAkRIDJMNHQBiYWNrdXAgY29weQAKCRBgYvyi4RxNdcnIAJ9vweb8
> vUH9m3a2aQHyAfeo0oJtlACfQiqcbHvdBtrxylRh42G2xea7gFM=
> =Xy4T
> -----END PGP PUBLIC KEY BLOCK-----
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Sun 06 Apr 2008 - 22:14:10 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.