Низкая производительность MySql Server - что и как проверить?

10

старт: отказ от ответственности

Я не администратор сервера MySql; Я знаю в основном MSSQL, поэтому мне нужна ваша помощь.

Конец: отказ от ответственности

Меня попросили проверить, почему ядро ​​сервера MySql работает плохо - я не видел и не занимал базы данных и хотел бы знать, с чего начать.

С чего мне начать?

Какие вопросы я должен задавать тем, у кого есть доступ к MySql - я даже не знаю, используют ли они phpmyadmin или какой-либо другой инструмент.

По существу:

  • Какие предметы я должен просить и как я отвечу на каждый предмет, который они дают?

Какие ключевые пункты следует запрашивать, когда проблема связана с производительностью базы данных?

в MSSQL я могу проверить sp_who2существующие соединения, чтобы увидеть, если что-то блокирует, что является аналогом в MySQL? * не должны быть конкретными, так как может быть много разных результатов для каждого элемента, но он хотел бы помочь запустить мяч, поскольку это влияет на пользователей - очевидно, они настроили движок mysql, не имея на борту dba.

Яскер Яскер
источник
Вы проверили обычные проблемы с ресурсами - ЦП переполнен, ОЗУ заполнен / не используется, перегрузка ввода-вывода? 101 штуку, с которой вы бы начали на сервере sql?
TomTom
У меня не было шанса - я просто хочу быть готовым, как только я войду, чтобы все продолжало двигаться - возможно, люди уже проверили на месте и с серверами приложений и БД с высокими характеристиками (компания разорилась), я хотел бы сосредоточиться на том, что происходит, если с оборудованием не проблема
Yasker Yasker
Из опыта - начать там. Я видел «высокопроизводительные серверы» с одним жестким диском SCSI (который они, должно быть, вытащили из аукциона ebay), у которого было много секундное время отклика ... Я бы проверил сторону ввода-вывода. Это также поможет - слишком большое количество операций ввода-вывода может указывать на пропущенные индексы, если цифры просто смешны.
TomTom

Ответы:

9
  • Регистрируйте медленные запросы. Если в вашей системе масса запросов, выяснить, какие запросы замедляют работу вашей системы, становится сложнее. MySQL предоставляет инструмент для регистрации медленных запросов для дальнейшего анализа http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

  • Расширенная команда EXPLAIN показывает подробности о ваших запросах, когда вы не знаете, что происходит http://dev.mysql.com/doc/refman/5.0/en/explain-extended.html

  • Чтобы ускорить ваши запросы, используйте Индекс. Хорошая практика - добавить индекс, посмотрев, какие поля в предложении WHERE добавляют индекс для них. Кроме того, если вы извлекаете все поля из таблицы, запрос замедляется при извлечении всех данных с диска. В запросе SELECT вы должны указать, какие поля вам нужно перенести вместо того, чтобы вывести их все с помощью *
  • Используйте Query Cache http://dev.mysql.com/doc/refman/5.1/en/query-cache-configuration.html
  • Убедитесь, что параметры файла конфигурации вашего сервера MySQL оптимизированы в соответствии с вашим оборудованием http://dev.mysql.com/doc/refman/5.5/en/option-files.html
  • Убедитесь, что вы используете оптимизированные типы данных при создании структуры таблицы. Например, поля «Комментарии» имеют размер 256 символов, ответьте на MYSQL с полем типа VARCHAR (256) вместо использования TEXT. Запрос будет намного быстрее.

Процедура_Анализ () может помочь вам найти оптимальные типы данных:

http://www.mysqlperformanceblog.com/2009/03/23/procedure-analyse/

http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

  • Существуют инструменты с открытым исходным кодом от Percona - http://www.percona.com/software/percona-toolkit, которые могут быть полезны для администраторов баз данных MySQL, и особенно новичкам в MySQL, эти инструменты окажут им хорошую помощь.
Махеш Патил
источник