echo "SHOW PROCESSLIST\G" | mysql -u root -p | grep "Info:" | awk -F":" '{count[$NF]++}END{for(i in count){printf("%d: %s\n", count[i], i)}}' | sort -n
Эта команда выполняет следующие действия:
1. echo "SHOW PROCESSLIST\G" | mysql -u root -p
: Отправляет команду «SHOW PROCESSLIST» на сервер MySQL с использованием учетных данных пользователя root, запрашивая пароль. Эта команда выводит список активных соединений и запросов к серверу MySQL в формате «SHOW PROCESSLIST».
2. grep "Info:"
: Фильтрует вывод, чтобы оставить только строки, содержащие «Info:», что позволяет извлечь информацию о выполняемых SQL-запросах.
3. awk -F":" '{count[$NF]++}END{for(i in count){printf("%d: %s\n", count[i], i)}}'
: Анализирует каждую строку и считает уникальные SQL-запросы, используя их текст (после «Info:») в качестве ключей. По завершении анализа, выводит количество каждого уникального SQL-запроса и сам запрос, отсортированные по количеству запросов в порядке возрастания.
4. sort -n
: Сортирует результаты