Добрый вечер

Нужно написать скрипт вывода ТОП популярных sql запросов по нашей базе в файл.

Для этого авторизуемся под рут в mysql и выполняем встроенную команду show processlist нашим скриптом раз в секунду.

В результате выдает типа:

mysql> show processlist;

+----+-------+-----------+---------+---------+------+--------------+-----------------------------------------------------------------------------+

| Id | User  | Host      | db      | Command | Time | State        | Info                                                                        |

+----+-------+-----------+---------+---------+------+--------------+-----------------------------------------------------------------------------+

|  3 | admin | localhost | base| Execute |    0 | Sending data | SELECT POS_R FROM table WHERE ID_P_R = ? ORDER BY DATE_R DESC LIMIT 1 |

| 27 | root  | localhost | NULL    | Query   |    0 | starting     | show processlist                                                            |

+----+-------+-----------+---------+---------+------+--------------+-----------------------------------------------------------------------------+

2 rows in set (0.00 sec)

Из этого мы выбираем столбец info и строку, начиная с ключевого слова SELECT, UPDATE, INSERT, DELETE и заканчивая первым словом после WHERE,

Пример:

SELECT POS_R FROM table WHERE ID_P_R

SELECT ROUND FROM name WHERE ID_USERS

SELECT DATE FROM date WHERE AUTH

и тд..

В результате склеиваем одинаковые запросы и делаем счетчик числа этих запросов, в результате в файле выводим что типо такого, сортируя по кол-ву убывания :

SELECT POS_R FROM table WHERE ID_P_R (3463)

SELECT ROUND FROM name WHERE ID_USERS (796)

SELECT DATE FROM date WHERE AUTH (232)

где числа 3463,796,232 это кол-во запросов, пока выполнялся наш скрипт.

Время выполнения скрипта, хорошо бы уметь при запуске определять, в секундах. Чтобы по истечении например 60сек, он прекращал работу и выдавал файл с результатами.

ОС:

Система Centos 6, Mysql 5.7

6 лет назад
easycode
Роман 
38 лет
9 лет в сервисе
Был
5 лет назад

Выбранный исполнитель

atraks
Сергей 
41 год
19 лет в сервисе
Был
3 года назад
6 лет назад
$10
1 день
Escrow
Оперативно, качественно
задача понятная оплата своевременная сразу после проверки на вопросы ответы быстрые

Заявки фрилансеров

atraks
Сергей 
41 год
19 лет в сервисе
Был
3 года назад
6 лет назад