- mysql_fetch_row ve while ile data çekmek aslında kullanması zor olsa da ama en hızlısıdır. - html kodları echo içinde vermemek hatta echo da saf db verisi vermek gerekir - değişkenlerinizi mysql free_result yerine öldürebilirsiniz. bir sonraki döngüde eğer üstteki sorgu sonucunu kullanmayacaksanız aynı değişken ismini verin. - açıklama satırı kullanın yarın hiçbirşey hatırlamayabilirsiniz - yeni ve hızlı güncellenen php yazılımları xoops, phpmyadmin, drupal izleyin. - yeni birşey yapıp uyumluluklarla uğraşacağınıza php de smarty, pecl gibi paketleri deneyin. evrensel kabul görmüşlerdir.

Evet Denemeyi yaptim. Siz haklisiniz. Ama farklar cok az. Yalniz fetch_assoc digerlerine nazaran daha hizli. Sebebi de direkt kolon ismine göre sonuclari almasi. Deneme bir laptopta yapildi. Windows XP home + WAMP5 kurulu. Her deneme arasinda bir haksizlik olmamasi icin servisler kapatip acildi. Yani apache, php ve mysql reset edildi. Bundan sonraki scriptlerde mysql_result kullanmamaya calisacagim. Beni bu testi yapmama sebep oldugunuz ve bilgilendirdiginiz icin tesekkür ederim. Önceki mesaj silinebilir de takip edecekler icin kalabilir de. 1. Deneme PHP:

Ceaser lütfen bildiklerini yaz. Neden her yazılana muhalefet oluyorsun anlamış değilim?

Yabancı forumda yazdı diğe ve ingilizce kullandı diğe sence bizden daha mı zeki bu adam? o quote ni üzülerek okuyorum ve demekki yabancilar bizden daha zeki ve daha iyi biliyorlar bu işi 97 den beri php kullaniyorum demek boşa ugraşmışım.

Bu başlık altında herkes buna benzer optimizasyonlarını paylaşırsa çok yararlı olacaktır hepimiz için. Ben bir alıntı ile başlıyorum. MySQL sorguları sağdan sola işlendiği için özel seçimlerinizi en sağa yazın. Tüm alanları seçmek yerine yalnızca kullanacağınız sütunları seçin . Çok nadir değişen bilgileri veritabanına koymak yerine bir dosyaya yazın. Seçmek ve sıralamak istediğiniz alanlar için index kullanın. Index'ler aramalarınızı çok hızlandırır, ancak yeni kayıt girişini yavaşlatır . Index'lerinizi analiz etmek için EXPLAIN komutunu kullanın. Yaptığınız aramada yalnızca 1 girdiye ihtiyacınız varsa her zaman LIMIT 1 kullanmalısınız. Böylece MySQL istediğiniz girdiyi bulduğu anda aramayı durdurur. Eğer sonuçlarınızı $girdi = mysql_fetch_array şeklinde alıyorsanız verilere iki şekilde ulaşabilirsiniz: $girdi ve $girdi . Sütun numarasıyla verilerinize ulaşmıyorsanız ekstradan boşu boşuna bir $girdi array'i oluşturuyorsunuz demektir. Sadece $girdi şeklinde verilerinize ulaşıyorsanız $girdi = mysql_fetch_assoc kullanın. Bazen mysql_free_result kazandırdığından fazla bellek kullanın. Farkı memory_get_usage ile kontrol edin. Veritabanından sürekli aynı bilgileri istemeyin, gerekiyorsa sonucu değişkenlere kaydedin. Verilerinizi olabildiğince NOT lisanssız tanımlayın. Hem her veri başına 1 bit kazanacak, hem de işleminiz hızlanacaktır. Verinize uygun türü seçin. Örnek olarak INT unsigned olarak 4294967295′e kadar sayıları tutar, ki bu çoğu zaman çok büyüktür. Uygunsa MEDIUMINT veya SMALLINT kullanın. Tabloya veri eklerken öntanımlı değerleri kullanın, yalnızca öntanımlıdan farklı değerleri belirtin. PHP Birçok blok kullanmak uygulamanızı yavaşlatır. Hızlı: &lt; ? ... ... ... ?&gt; Yavaş &lt; ? ... ?&gt; &lt; ? ... ?&gt; &lt; ? ... ?&gt; (1) şeklinde bir kod genelde (2)'den hızlı çalışır. Gerekmediğinde string birleştirmeyi kullanmayın. Hızlı: "SELECT id FROM tabell WHERE id = $_SESSION LIMIT 1′′ Yavaş "SELECT id FROM tabell WHERE id = ".$_SESSION ." LIMIT 1′′ String'lerinizi çift tırnak yerine tek tırnakla açıp kapatmanız uygulamayı biraz hızlandırabilir. Php "..." içindeki değişkenlere bakarken '...' içindeki değişkenleri önemsemez. Tabii ki bunu string içerisine değişken yazmak istemediğinizde kullanmalısınız. String'leri ve değişkenleri echo ile bastırken nokta yerine virgül kullanmak daha hızlıdır. Örnek: echo "bir degisken" , $degisken, "yaziyor..."; Not: Bu yalnızca birden fazla string parametresi alabilen echo fonksiyonu için geçerlidir. echo, print'ten hızlıdır. for döngüleriniz için üst limiti döngüden önce bir değişkene atıp kullanmak her turda bu sayının tekrar tekrar hesaplanmasını engeller: Hızlı: $maxvalue = 100/10; for($i=0; $i&lt;$maxvalue; $i++) Yavaş: for($i=0; $i&lt;100/10; $i++) İşiniz bittiğinde değişkenlerinizi ve özellikle büyük array'lerinizi unset kullanarak belleğe geri döndürün. Son söz ve kaynaklar Mümkünse her veritabanı güncellemesinden sonra veya belli zaman aralıklarında statik html dosyaları oluşturmak tabii ki en iyi optimizasyon olacaktır. Daha detaylı bilgi için aşağıdaki adresleri ziyaret edebilirsiniz: Alıntı Yapılan URL

Saglikli sonuc almak icin microtime olayini kalibre edin Ornek: PHP:

Bu başlık altında iyinet, Angelo, hdogan, Ceaser ve diğer ismini sayamadığım arkadaşların yazılarınıda görmek isterdim

tabi canım ölçtükten sonra çıkartman en mantıklısı. gerekmedikte microtime date mysql_result kullanmaktan kaçmak lazım zaten. Sıra sana geldi @ siber zaten bildiklerimi yazarak yardımcı olmaya calisiyorum ama konusmalarına dikkat ben ne senin para ile tuttuğun bir sokak webmasteriyim nede sana calisan bir insanım. kişilerle konusmalarına dikkat et emir cümleleri kullanma.

mysql_fetch_row bana agir geldi denedigimde. Php. net in kendi sayfasindan alinti yapiyorum : PHP: mysql_result - Manual When working on large result sets, you should consider using one of the functions that fetch an entire row .

Eger tek satir tek sütunden bilgi alacaksaniz mysql_result u tercih edin. yani diyelim $rs = mysql_query(&quot;Select count as toplam from onlineuyelertablosu&quot;); $toplam = mysql_result ; Bu biraz olsun isinizi hafifletir. Yanlisim varsa üstadlar düzeltsin.

ona göre ayarlayacaksin armut piş ağzıma düş şeklinde olmaz sorguların değişecek vs vs vs

Yalnizca yukarda belirttim. Tek deger alacaksaniz mysql_result kullanin tabi ki cok degisken gelecekse mysql_fetch_assoc veya mysql_fetch_array kullanin. Ama dbden alinacak tek deger icin mysql_Result ' un daha avantajli oldugu kanisindayim. mysql_result Bir yer daha : Article Discussion: Writing Clean and Efficient PHP Code - Dev Shed Burdan alinti : I did some simple benchmarking and my results reflected the PHP docs: 1. In cases where 1 row was returned and using only 1 column, mysql_result (option1) was faster by a smidge. 2. In cases where many rows (1500 as in the example), mysql_fetch_row (option2) was about 15% faster when only using 1 column from the row. 3. In cases where many rows were returned and 2 columns were used, mysql_fetch_row was on the order of 100% faster.

Konunun aynısını zamanında Ceviz. net'e açmıştım. buyrun buda linkimiz; http://forum.ceviz. net/showthread. php?t=28697

O gebertir, bu gebertir, microtime vb. sayfanın toplam işlem süresini nasıl ölçeceğim şimdi? çok fazla db içeren tablolarda myisam kullanmaktansa innerdb kullanınız.. hala myisam ise insert into yeniinnerdbtablo select from eskimyisamtablo dan yararlanarak innerdb ye ceviriniz. bunlar performansınızı %90 artıracaktır. aklıma bu kadar geldi. kolay gelsin.

mysql_result aksine boğar sorguyu yavaslatir

tek satir için zaten mysql_fetch_row dige bir fonksiyon var denedin mi?

Caesar' Alıntı:

verdiğiniz bilgiler çok işime yaradı teşekkürler

yanlız microtime fonksiyonu dah da feci gebertir bu ayrıntıyı atlamışsın