Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Kayıt Ol

Bu Mysql Sorgusunu Nasıl Hızlandırabilirim ?

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
PHP:
$s1 = "SELECT `kategori1`,`kategori2` FROM `tablo` WHERE `kategori1` = '" . $kat1 . "' GROUP BY `kategori2`";
$s2 = mysql_query($s1);

while ($al = mysql_fetch_array($s2)) {
echo $al['kategori2_ye_ait_alt_kategoriler'] . "<br />";
}

Yukarıdaki sorgudan aldığım tekrarlanan kategori isimlerini anlık olarak bu şekilde ekrana basıyorum. ( Bu şekilde yapmam gerekiyor çünkü kategori listesi devamlı yenileniyor )

Bu sorgulamayı localde 150 bin kayıt bulunan bir tabloda test ettiğimde 2 ile 7 saniye aralığında bir sonuç veriyor.

Yukarıdaki sorgulamayı başka bir şekilde yapmam mümkün müdür ?
Ayrıca 150 bin kayıtlı tablo için bu sorgulama süresi normal midir ?

Not :

- Bu sorgu 30 bin kayıt bulunan tabloda yeterince hızlı çalışıyor.
 

superweb

0
Onaylı Üye
Üye
Katılım
29 Mart 2010
Mesajlar
332
Açılan Konu
11
Tepki puanı
9
Konum
İstanbul
kategori1 sutununuz int midir? ayrıca bu sutuna index attınız mı?
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
Hayır tüm sütünlar string ve hiçbir sütunda index yok. Çünkü index attığımda eklenen veriler ayrı indexlere paylaştırıldığı için sorun çıkıyor veya ben yapamadım. İndexsiz bir çözüm olursa daha iyi olur :)
 

metadige

0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Açılan Konu
21
Tepki puanı
4
Arkadaşım yanlış düşünüyorsun bence, 150.000 kayıtlı bir tabloda index kullanmayıp, sonra nasıl performansı arttırırım demek garip olmuş biraz. İndex kullanman gerekir, ve arkadaşın söylediği gibi string olarak değil int olarak eklemen daha iyi olur.
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
metadige sistem bu şekilde işliyor ve bu sisteme göre çözüm bulmak istiyorum yoksa index yapmak problem değil. Ayrıca dediğim gibi ID dışında hiçbir sütün int değil ve olması da mümkün değil.
 

superweb

0
Onaylı Üye
Üye
Katılım
29 Mart 2010
Mesajlar
332
Açılan Konu
11
Tepki puanı
9
Konum
İstanbul
table yapınızı değiştirmeden optimizasyon elde etmek zor fakat donanım çözümü de optimizasyon sağlayacaktır. mysql çoğunlukla disk işlemi yapar. diskiniz ne kadar hızlı ise mysqliniz o kadar hızlıdır. çok daha hızlı bir disk alabilir veya mysqli ramdiskte çalıştırabilirsiniz.
 
Üst