Как зарегистрировать медленные запросы в общем MySQL хостинга?

У меня есть общий хостинг, где у меня есть свой веб-сайт и база данных MySQL. Я установил сценарий с открытым исходным кодом для статистики (phpMyVisites), и она начала работать очень медленная в последнее время. Это записало использование некоторой платформы и имеет много файлов PHP. Я знаю, что для нахождения медленных запросов я могу использовать функциональность журнала медленного запроса в MySQL. Но на этом общем хостинге я не могу использовать этот метод, потому что я не могу изменить my.cnf. Я не хочу изменять свой сценарий статистики на другой, и я не хочу бездельничать со всеми файлами этого сценария для обнаружения, куда поместить код диагностики для входа запросов вручную. Я хотел бы сделать это без изменений в коде PHP.

Таким образом, мой вопрос:

Как зарегистрировать медленные запросы в этих coditions?:

  • Не может изменить my.cnf для включения журнала медленного запроса
  • Не может изменить сценарий статистики на другой
  • Не знайте, как scrpt записан и где команды mysql даются
  • Не может попросить мой поставщик журнал медленного запроса

Там какой-либо метод должен сделать это простым, легким, быстрым способом?

6
задан Tomasz Smykowski 17 April 2010 в 17:59
поделиться

4 ответа

Хм, может быть, сделать функцию, которая проверяет, сколько времени потребовалось для выполнения запроса sql, прежде чем он вернул значение? Затем, если он был выше указанного количества, запишите его ... например, в php я бы сделал это так

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

Это имитирует регистратор запросов slog, я не думаю, что есть способ включить его на общем хостинге.

Надеюсь, это поможет :)

4
ответ дан 10 December 2019 в 02:44
поделиться

Вы можете написать сценарий, который отслеживает список процессов mysql , пока выполняется ваш медленный сценарий.

0
ответ дан 10 December 2019 в 02:44
поделиться

Я бегло просмотрел phpMyVisites. В config.inc.php я обнаружил следующее:

// 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);
} 

Я подозреваю, что SAVE_DB_LOG может быть хорошей отправной точкой, поэтому я бы попытался включить режим DEBUG.

3
ответ дан 10 December 2019 в 02:44
поделиться

Является ли передача дампа данных в локальную тестовую систему, где вы можете активировать журнал медленных запросов, опцией?

2
ответ дан 10 December 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: