İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Daha hızlı MySQL sorgusu

ejder

0
İyinet Üyesi
Katılım
10 Kasım 2003
Mesajlar
0
Reaction score
4
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);
 

Haymac

0
İyinet Üyesi
Onaylı Üye
Katılım
10 Ağustos 2004
Mesajlar
236
Reaction score
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
 

ejder

0
İyinet Üyesi
Katılım
10 Kasım 2003
Mesajlar
0
Reaction score
4
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.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
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.)
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst