У меня есть общий хостинг, где у меня есть свой веб-сайт и база данных MySQL. Я установил сценарий с открытым исходным кодом для статистики (phpMyVisites), и она начала работать очень медленная в последнее время. Это записало использование некоторой платформы и имеет много файлов PHP. Я знаю, что для нахождения медленных запросов я могу использовать функциональность журнала медленного запроса в MySQL. Но на этом общем хостинге я не могу использовать этот метод, потому что я не могу изменить my.cnf. Я не хочу изменять свой сценарий статистики на другой, и я не хочу бездельничать со всеми файлами этого сценария для обнаружения, куда поместить код диагностики для входа запросов вручную. Я хотел бы сделать это без изменений в коде PHP.
Таким образом, мой вопрос:
Как зарегистрировать медленные запросы в этих coditions?:
Там какой-либо метод должен сделать это простым, легким, быстрым способом?
Хм, может быть, сделать функцию, которая проверяет, сколько времени потребовалось для выполнения запроса sql, прежде чем он вернул значение? Затем, если он был выше указанного количества, запишите его ... например, в php я бы сделал это так
$before = time();
//run your query
$after = time();
$difference = $after - $before
if($difference > 5000)
//Log query
Это имитирует регистратор запросов slog, я не думаю, что есть способ включить его на общем хостинге.
Надеюсь, это поможет :)
Вы можете написать сценарий, который отслеживает список процессов mysql , пока выполняется ваш медленный сценарий.
Я бегло просмотрел 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.
Является ли передача дампа данных в локальную тестовую систему, где вы можете активировать журнал медленных запросов, опцией?