Daha hızlı MySQL sorgusu

0
Onaylı Üye
Üye
Katılım
10 Kasım 2003
Mesajlar
0
Tepki puanı
3
Konum
istanbul
$sorgu = mysql_query("SELECT * FROM haber");

while($data = mysql_fetch_array())
{
echo($data["isim"]);
}

bu şekilde bir sorgunun ekrana getirilmesinden ziyade aşağıdaki şekilde yapılması daha hızlı çalışmasını sağlıyor, bir yerde okumadım.. denerken keşfettik, sizde deneyebilirsiniz :)

$sorgu = mysql_query("SELECT * FROM haber");
$mesaj = "";
while($data = mysql_fetch_array())
{
$mesaj .= $data["isim"];
}
echo($mesaj);
 
0
Onaylı Üye
Üye
Katılım
5 Ekim 2003
Mesajlar
56
Tepki puanı
0
Konum
Ankara, İstanbul, Sa
nasıl ve neye göre test ettiniz? kaç saniye kazandırıyor?...
biraz daha açıklasaydınız..
 
0
Onaylı Üye
Üye
Katılım
9 Ağustos 2004
Mesajlar
236
Tepki puanı
2
while döngüsünün içinde echo'latmak :)D) yani yazdırmak evet hız kaybına sebep oluyor olabilir.
Fakat sütun sütun(ya mesela aynı tabloda birden fazla değişkenin olduğu HTML de tablonun içine yazdırdığı durumlarda tek sütun değil birden fazla sütün limit 1 değil mesela 10 olunca filan) olan şeyleri mecburen Bir değiskene yani array a atmadan yapmak zorunluluğu(basitliği diyelim :D) doğuyor. Diğer türlü daha bi hız kaybı olur gibime geliyor Bilmem siz ne dersiniz ?
 
B
besiktaslim
Misafir
:D
while($data = mysql_fetch_array())
{$mesaj .= $data["isim"];}
echo($mesaj);

bunu bir yerde okumaya gerek yok bu şekilde belki hızlı olur
{$mesaj .= $data["isim"] . "<br>";}

hadi bunada oky ama hiç bizaman bir sorgudan gelen bişeyi bunun gibi kullanmadım.

{$mesaj .= "<tr><td>" . $data["isim"] . "</td><td>" . $data["soyisim"] . "<tr>";}
echo "<table> $mesaj </table>";

hızlandırabilir belki ama bilgileri fizandan getirmediğini düşünürsek pekde bişy farketmez gibi
 
0
Onaylı Üye
Üye
Katılım
10 Kasım 2003
Mesajlar
0
Tepki puanı
3
Konum
istanbul
ben sadece paylaşmak istedim.. linkcenneti.com ve roketdownload adreslerinde test ettik.. yaklaşık 5sn'lik bir hızlanma söz konusu oldu iki sitede de..

bu tarz mysql işlemi yoğunlukta siteler için uygulanabilecek bir yöntem olduğunu düşünüyorum.
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
77
Konum
SEO
Konu mysql ve PHP den acilmisken,
PHP de en hizli sekilde ekrana yazdirmak icin ekrana yazilacak herseyi bufferlayip en son 1 kerede ekrana gondermektir.

Bunun en iyi ve en hizli yolu ise soyledir:

PHP:
ob_start();
...
...
...
$str = ob_get_contents();
ob_end_clean();
echo $str;

Ayrica makinadaki memory ye gore mysql konfigurasyon dosyasindaki key_buffer degerini arttirin.

PHP:
Ornegin 512Mb bellek icin  key_buffer=128Mb yada 256Mb (makinadaki diger islemelere bagli olarak deneyip gormek gerekiyor)
1Gb bellek icin key_buffer=512Mb

Bu konfigurasyon
Key cache hit ratio yu arttiracak ve I/O yu azaltacak Mysql u hizlandiracaktir.
(Bundan faydalanmak icin tablolarinizda gereken indexlerin yaratilmis olmasi gerekir.)
 
Geri
Üst