php mysql sorguları çalıştıran göstermek için nasıl

4 Cevap php

Ben bir taşma bellek kullanımı sorunu var ve benim tüm komut dosyaları taramak gerekir. Benim soru nasıl php mysql sorguları çalışan bir listesini gösterebilir mi?

4 Cevap

Sorun MySQL sitede ise bu çok yardımcı olabilir:

mysql_query('show processlist');

Bu işlem için bekleyen tüm sorguları dönmelidir. Ben genellikle çıkışı biçimlendirmek zorunda değilsiniz mysql konsolundan doğrudan kullanabilirsiniz.

Sen orijinal mysql_query fonksiyonu yeniden adlandırmak ve sorguları ile neyin yanlış gittiğini görmek için kod teftiş / bazı ek günlüğünü içeren kendi yazabilirsiniz:

rename_function('mysql_query', 'mysql_query_original');
override_function('mysql_query', '$query', 'return mysql_query_override($query);');

function mysql_query_override($query){
    echo "Query started";         // Add some more sensible information here
    $result = mysql_query_original($query);  
    echo "Query ended";           // Add some more sensible information here
    return $result;
}

Eğer trafik büyük seviyeleri ile bir site çalıştıran sürece, o kuyruğa / çalışan sorguları herhangi anlık temsilcisi olması muhtemel değildir. Bunu olurken script ile sorgu ilişkilendirilmesi açısından sorunlar da vardır.

Ben kendi kod instrumenting öneririm - mysql_query etrafında sarıcı tanımlamak için bir oto-prepend kullanın sonra kendi günlüğünü uygulamak hangi edebilirsiniz:

1) creates a log entry before the script is fired (most log entries are created afterwards - not very handy if the code which writes the log crashes) 2) records the script which triggered the query and the query itself 3) records the memory usage before 4) records the same facts after along with the time taken

Sonra bir özyinelemeli arama yapmak ve sarıcı FN ile) (mysql_query çağrıları değiştirmek için kaynak kodu üzerinde değiştirin.

C.

Bu PHP nasıl çalıştığını, bu şeyler uyumsuz yapmaz çünkü herhangi bir zamanda çalışan tek bir sorgu vardır. Eğer farklı yapmak için 3. parti kütüphane çeşit kullanmadığınız sürece.

* EDIT: http://stackoverflow.com/questions/124462/asynchronous-php-calls: belki bakmak, mümkün görünüyor. Ancak çalışan kaç sorguları görmek için hiçbir yolu hala uyumsuz çalıştırmak için PHP olsun. Kodunuzu çalışırken Belki bazı mysql istatistikleri denemek ve kontrol edebilir.