Повільна продуктивність сервера MySql - Що і як перевірити?


10

початок: відмова від відповідальності

Я не DBA сервера MySql; Я знаю здебільшого MSSQL - саме тому мені потрібна ваша допомога.

кінець: відмова від відповідальності

Мене попросили перевірити, чому двигун сервера MySql працює погано - я не бачив і не мав залучених баз даних і хотів би знати, з чого почати.

З чого я починаю?

Які питання мені слід задавати тим, хто має доступ до MySql - я навіть не знаю, чи вони використовують phpmyadmin чи якийсь інший інструмент.

По суті:

  • Які предмети я повинен запитати і як би я відповідав на кожну деталь, яку вони дають?

Які ключові пункти слід запитати, коли питання відбувається у виконанні бази даних?

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


Ви перевірили звичайні проблеми з ресурсами - CPU повний, оперативна пам’ять повна / не використовується, IO перевантаження? 101 речі, з яких ви б почали на сервері sql?
TomTom

У мене не було шансу - я просто хочу бути готовим, як тільки я заходжу, так що все продовжує рухатися - можливо, люди на місці вже перевірені, і з прикладними, і з серверами db з високими характеристиками (компанія розбита) я хотіли б зосередитись на тому, що станеться, якщо з технікою не проблема
Yasker Yasker

З досвіду досвіду - починайте з цього. Я бачив "сервери високого класу" з одним жорстким диском SCSI (що їх, мабуть, витягнули з аукціону ebay), який мав багатосекундні часи відповіді ... Я би підтвердив IO сторону. Це також допоможе - занадто багато IO може вказувати на відсутні показники, якщо цифри просто абсолютно смішні.
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

  • Для прискорення запитів використовуйте Index - хороша практика - додавання індексу, бачачи, які поля в пункті WHERE додають до них індекс. Також якщо ви отримуєте всі поля з таблиці, запит стає повільніше, отримуючи всі дані з диска. У запиті SELECT слід вказати, які поля потрібно замість цього привести, щоб звести їх усі *
  • Використовуйте кеш запитів http://dev.mysql.com/doc/refman/5.1/uk/query-cache-configuration.html
  • Переконайтесь, що параметри файлів конфігурації вашого сервера MySQL оптимізовані відповідно до вашого обладнання http://dev.mysql.com/doc/refman/5.5/uk/option-files.html
  • Переконайтеся, що ви використовуєте оптимізовані типи даних під час створення структури таблиці. Наприклад, поля "Коментарі" мають розмір 256 символів, відповідайте на MYSQL із полем типу VARCHAR (256) замість використання TEXT. Запит буде набагато швидшим.

Процедура_Analyse () може допомогти вам у пошуку оптимальних типів даних:

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

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

  • Існують інструменти з відкритим кодом від Percona - http://www.percona.com/software/percona-toolkit, які можуть бути корисними для DBA MySQL та спеціально для тих, хто не знайомий з MySQL, ці інструменти нададуть їм хорошу допомогу.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.