Как очистить профили запросов MySQL
После включения профилирования в MySQL
SET profiling=1;
Я могу запускать как запрос типа SELECT NOW();
и просматривать результаты профиля с его временем выполнения, используя:
SHOW PROFILES;
Однако я не могу понять, как удалить список профилей. Кто-нибудь знает инструкцию для удаления старых данных профиля? SET profiling=0;
просто отключает ведение журнала новых данных и не удаляет старую статистику.
Ответы
Ответ 1
Чтобы удалить предыдущие профили запросов, установите @@profiling_history_size=0
. Следующий фрагмент очищает профили, устанавливает максимальный размер истории и позволяет профилировать
SET @@profiling = 0;
SET @@profiling_history_size = 0;
SET @@profiling_history_size = 100;
SET @@profiling = 1;
Протестировано на 5.6.17
Ответ 2
Информация о профилировании хранится в временной таблице information_schema.profiling
, как указано в http://dev.mysql.com/doc/refman/5.0/en/profiling-table.html
Под пользователем базы данных, имеющим необходимый уровень доступа, вы можете обрезать информацию, хранящуюся там, если это позволяет движок;
TRUNCATE TABLE information_schema.PROFILING;
Если вы не можете перезапустить сервер MySQL, поскольку information_schema
хранится исключительно в памяти, информация профилирования не сохраняется после перезапуска службы.