Я хотел бы знать, есть ли способ отобразить наиболее частый SQL-запрос на сервере MySQL, чтобы сохранить его в памяти.
чек mysql sla - он может принимать ваш журнал запросов, параметризованные запросы и предоставлять вам отчет с типами запросов, которые появляются наиболее часто.
Вы должны включить ведение журнала запросов или отслеживать его через show processlist;
См. Документацию:
http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html
Если вы правильно подберете параметры, вы увидите запросы в журнале медленных запросов:
Я бы посоветовал вам установить очень маленькое время медленного запроса, а затем запустить maatkit's мк-запрос-дайджест для профилирования всех зарегистрированных запросов. Вы также можете запустить его в обычном файле журнала.
Есть и другие утилиты maatkit, которые тоже могут помочь.
Innotop - это хороший способ наблюдать за тем, что делает ваш сервер - обычно легче следить, чем показывать список процессов.
Я работаю с коммерческим программным пакетом Jet Profiler для MySQL. http://www.jetprofiler.com/ и нравится. Стоит около 400 долларов, правда есть пробный период.
В противном случае я регистрирую запросы SQL в своем приложении. С помощью Java (мой язык по выбору) вы можете настроить драйвер JDBC Connector / J для регистрации всех запросов sql. Затем я совмещаю регулярное выражение и ручное редактирование, чтобы сделать его читабельным, и анализирую результаты.