Поиск по ключевым словам, то есть именам таблиц или именам столбцов.
При использовании своего мобильного приложения или веб-приложения или настольного приложения вы узнаете, на какую страницу загружается больше, чем ожидалось. Запросы, выполняемые в фоновом режиме, подвержены влиянию времени загрузки. Но это происходит только тогда, когда мы выполняем вызовы синхронизации, а не асинхронные вызовы для извлечения данных. Поэтому, когда вы знаете медленно или медленно загружаемую страницу, у вас будет список запросов, которые запускаются на этой странице при загрузке, и список запросов, которые запускаются, потому что вы выполняете действие на этой странице. После того, как вы узнаете о запросах, вы узнаете используемые таблицы и столбцы.
Теперь, если вы ищете журнал медленных запросов, и вы установили очень высокие стандарты для себя и установите время медленного запроса на 400 миллисекунд, есть вероятность, что ваш медленный журнал запросов будет загружен, если вы не гений , Таким образом, мы делаем эту простую вещь:
grep 'table_name' /var/lib/mysql/mysql-slow.log
Это создает больше проблем, чем решает, поскольку все важные вопросы остаются без ответа, поскольку это не дает времени запроса, дата запроса и т.д. Таким образом, сделать это:
grep -B 3 'table_name' /var/lib/mysql/mysql-slow.log
-B x дает вам количество строк перед запросом.
Нам понадобится это, потому что 3 строки до фактического запроса содержат всю информацию о выполнении запроса - когда был выполнен запрос и сколько времени прошло!
Альтернативным:
grep -A 3 'query_user' /var/lib/mysql/mysql-slow.log
Количество медленных запросов в течение дня, час-накрест
grep Time mysql-slow.log | cut -d: -f1,2 | sort -r | uniq -c
примечание здесь: вы можете использовать либо сортировать -u или вы можете использовать сортировать | uniq -c, но убедитесь, что uniq не будет работать независимо, он будет работать только при его сортировке. Сортировка должна выполняться до uniq.
Использование mysqldumpslow для проанализируйте журнал
Получение 10 лучших неэффективные запросы.
mysqldumpslow -u root -p -s c -t 10
Если вам необходимо получить в подробных журналов аналитики, вы должны настроить ELK стек на вашей машине и подключить MySQL к настройке журнала аналитики.Или вы можете использовать NewRelic для анализа журналов MySQL.
Для 'mysqldumpslow', я предпочитаю' -s t', чтобы заказать «влияние на систему». Плохо проиндексированный запрос может быть несущественным, если он очень редок. –
@ RickJames - Является ли ELK жизнеспособным вариантом анализа журналов MySQL? – MontyPython
Извините, я не знаю о ELK. Я рассмотрел медленный журнал на сотнях серверов и обнаружил, что _usually_ _most_ полезную информацию в первых нескольких запросах, отображаемых 'mysqldumpslow -s -t' или' pt-query-digest'.Покажите мне первую пару запросов (плюс 'CREATE TABLE' и' EXPLAIN'), и я могу _usually_ дать важные советы. –