У меня есть два скрипта, помещенных в cron, которые запускаются каждую минуту. Оба сценария подключаются к одной базе данных и запускают show full processlist
. Ничего страшного, если два show full processlist
команды запускаются одновременно?
P.S: - Один из скриптов будет удален через неделю или около того, поэтому эта настройка рассчитана максимум на одну неделю.
В чем разница между SHOW PROCESSLIST;
и SHOW FULL PROCESSLIST;
?
SHOW PROCESSLIST;
отображает первые 100 символов столбца ИНФОРМАЦИЯSHOW FULL PROCESSLIST;
отображает весь столбец INFOИз INFORMATION_SCHEMA.PROCESSLIST точка зрения:
SHOW PROCESSLIST;
эффективно работает SELECT ID,USER,HOST,DB,COMMAND,TIME,STATE,LEFT(INFO,100) INFO FROM information_schema.processlist;
SHOW FULL PROCESSLIST;
эффективно работает SELECT * FROM information_schema.processlist;
Я могу придумать только одно обстоятельство, когда ты не хочешь бежать SHOW FULL PROCESSLIST;
.
Когда вы загружаете mysqldump в экземпляр MySQL, вы запускаете SHOW PROCESSLIST;
отслеживать прогресс загрузки стола. Мы знаем, что mysqldumps расширили INSERT. Этот единственный INSERT может иметь сотни или даже тысячи строк. Если ты бежишь SHOW FULL PROCESSLIST;
, вы можете передать текстовое представление этих сотен или даже тысяч строк на консоль или в журнал. Это может быстро создавать огромные журналы SQL-запросов с данными, видимыми в виде обычного текста.
Итак, будьте очень осторожны, чтобы не запускать несколько SHOW FULL PROCESSLIST;
команды во время загрузки mysqldump.
Если у вас есть некоторый мониторинг списка процессов, вы можете либо
SHOW PROCESSLIST;
SELECT ID,USER,HOST,DB,COMMAND,TIME,STATE,LEFT(INFO,300) INFO FROM information_schema.processlist;
(установка LEFT (INFO, xxx) на любую управляемую длину)Да, это хорошо. Даже если нет, задача MySQL - решить эту проблему, например отложив вторую до завершения первой.