PHP ile MySQL sorgu yürütmek için zaman bulmak

4 Cevap php

Ben (here ve here, örneğin) internet etrafında bu soruyu gördüm, ama ben iyi bir cevap görmedim. O (mysql_query üzerinden yürütülür) verilen bir MySQL sorgu PHP ile aldı süreyi bulmak mümkün mü?

Bazı yerlerde PHP'nin microtime fonksiyonunu kullanmanızı öneririz, ama bu yanlış olabilir gibi bu görünüyor. mysql_query ağ gecikmesi, ya da hızlı bir şekilde sorguya yanıt vermeyen bir halsiz sistemi veya başka bir ilgisiz neden tarafından batağa saplanmış olabilir. Bunların hiçbiri doğrudan Gerçekten burada test etmek istediğiniz tek şey, sorgu kalitesi ile ilgilidir. (Eğer katılmıyorum yorumlarda belirtiniz!)

4 Cevap

Ben sadece sorgunun kendisi kalitesini kontrol ediyoruz, daha sonra denklem PHP kaldırın. MySQL Query Browser veya SQLyog gibi bir araç kullanın.

Eğer shell erişiminiz varsa ya da sadece doğrudan bağlanın. Bu yöntemlerden herhangi sorguları gerçek performansını belirlemede daha üstün olacaktır.

Benim cevabım benzer, ama çeşitlidir. Sorgudan önce ve sonra zamanını kaydedin, ancak veritabanı sorgu sınıfı içinde bunu. Oh, sen doğrudan mysql_query kullanarak söylüyorlar? Eğer (Snark pardon) bu ham php veritabanı fonksiyonları etrafında bir sınıf sarıcı kullanmalısınız neden Eh, şimdi biliyorsun. Aslında, bir zaten PDO denir inşa edilmiştir:

http://us2.php.net/pdo

Eğer sorguları her etrafında zamanlamasını yapmak için işlevselliğini genişletmek istiyorsanız ... sınıfını genişletmek! Yeterince basit, değil mi?

Php düzeyinde hemen hemen sorgudan önce ve sonra zamanı kaydetmek gerekir.

Sadece sorgu performansı kendisi umurumda eğer mysql sunucu yavaş sorgu günlüğünü etkinleştirebilirsiniz: http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html Bu saniye belirli bir sayıda daha tüm sorguları uzun oturum olacaktır.

Gerçekten bilgilerini sorgulamak gerekiyorsa belki GÖSTER PROFİLLERİNİN faydalanmak olabilir:

http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html

Şahsen ben microtime-ing bir arada kullanmak, yavaş sorgu günlüğü mytop ve analiz sorun MySQL istemcisi (komut satırı) ile sorgular.