Свои mysql slow log для каждого виртуального хоста

Ярослав

Новичок
LONGMAN
Внутренний от мускула тут не получиться использовать.

Сделать свой враппер для mysql_query и там уже засекать время

PHP:
$t = microtime(true);
$result = mysql_query(...)
if (microtime(true) - $t > 5) {
 // пишем в лог
}

return $result;
 

LONGMAN

Dark Side of the Moon..
LONGMAN
Внутренний от мускула тут не получиться использовать.

Сделать свой враппер для mysql_query и там уже засекать время

PHP:
$t = microtime(true);
$result = mysql_query(...)
if (microtime(true) - $t > 5) {
 // пишем в лог
}

return $result;
Ваш метод не подходит. Неужели нету модуля apache или какого нибудь софта для этого?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
мускул знать не знает ни о каких «виртуальных хостах» — это база данных. Она может вообще на другом сервере быть, где нет никакого вебсервера.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Однако, если у тебя у каждого хоста отдельная база — включи вывод в таблицу (5.1+ кажется) там можно их выбрать по конкретной базе
 

LONGMAN

Dark Side of the Moon..
флоппик
Да, у каждого хоста отдельная база/базы. Но мне именно нужно slow queries логи в log файлах для каждого виртуалхоста/клиента отдельно.
Чтобы они сами без моего вмешательства могли посмотреть эти логи в logs папке своего виртуалхоста.
Такое возможно?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
флоппик
Да, у каждого хоста отдельная база/базы. Но мне именно нужно slow queries логи в log файлах для каждого виртуалхоста/клиента отдельно. Такое возможно?
Средствами мускула — нельзя. Однако, пиши общий, демоном — разбирай на части, клади каждому.
 

weregod

unserializer
что-то мне подсказывает, что враппер с замером времени реализовать и проще, и платформонезависимей.
 

weregod

unserializer
Если не интересуют скорости выполнения mysql_select_db(), mysql_set_charset(), mysql_insert_id() и прочих обвязок, которые исполняют запросы внутри себя, то пойдёт враппер только для mysql_query().
Так же замечу, что при быстрых запросах разница microtime(TRUE) в коде
PHP:
$startTime = microtime(TRUE);
$result = mysql_query($query);
$benchTime = microtime(TRUE) - $startTime;
бывает отрицательной, потому нужно похитрить
 

weregod

unserializer
с округлений вроде, очень неожиданно такие бенчи смотрятся, да
 
Сверху