Hosting MySQL yavaş sorguları giriş nasıl?

4 Cevap php

I have a shared hosting where I have my website and MySQL database. I've installed a open source script for statistics (phpMyVisites) and it started to work very slow lately. It's written using some kind of framework and has many PHP files. I know that to find slow queries I can use slow query log functionality in MySQL. But on this shared hosting I can not use this method because I can not change my.cnf. I don't want to change my statistics script to other and I don't want to mess around with all files of this script to find out where to put diagnostics code to log queries manually. I would like to do it without changes in PHP code.

Yani benim soru:

Nasıl bu coditions yavaş sorguları oturum?:

  • Yavaş sorgu günlüğünü etkinleştirmek için my.cnf değiştiremezsiniz
  • Diğer istatistikleri senaryoyu değiştiremezsiniz
  • Scrpt yazılır ve mysql komutları verilir nerede bilmiyorum
  • Yavaş sorgu günlüğü benim sağlayıcı talep edemez

Basit, kolay, hızlı bir şekilde bunu yapmak için herhangi bir yöntem var mı?

4 Cevap

Hmm, belki de bir değer döndü önce bir sql sorgusu nasıl uzun sürdü denetleyen bir işlev yapmak? Bunu log belirtilen miktar üzerinden olsaydı Sonra ... php örneğin ben böyle yapardım

$before = time();
//run your query
$after = time();
$difference = $after - $before
if($difference > 5000)
   //Log query

I gidecekseniz hosting üzerine sağlayan bir yol sanmıyorum, zorlanmak sorgu logger öykünür.

Bu yardımcı olur umarım :)

Ben phpMyVisites'in hızlı bir göz attım. Config.inc ben aşağıdaki bulundu:

// Other
if(!defined('DEBUG')) define('DEBUG', false);
define('DEFAULT_ACTION', false);

error_reporting( E_ALL );

if(DEBUG)
{
    define('PRINT_TIME', false);
    define('PRINT_QUERY_COUNT', true);
    define('SAVE_DB_LOG', true);
    define('PRINT_QUERY', true);
} 

Ben SAVE_DB_LOG iyi bir başlangıç ​​noktası olabilir, o yüzden DEBUG modunu açmak için denemek sanıyorum.

Eğer yavaş sorgu bir seçenek oturum aktif hale getirebilirsiniz yerel bir test sistemi için bir veri dökümü transfer mi?

Eğer yavaş komut çalışırken mysql processlist izleyen bir komut dosyası yazabilirsiniz.