Как очистить профили запросов 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 хранится исключительно в памяти, информация профилирования не сохраняется после перезапуска службы.