Mysql
 sql >> база данни >  >> RDS >> Mysql

10 полезни съвета за настройка на производителността на MySQL

Както всички други бази данни, MySQL може да бъде сложен и може да спре в миг, поставяйки всичките ви бизнеси и задачи на линия. Въпреки това често срещаните грешки са в основата на повечето проблеми, засягащи производителността.

За да гарантирате, че сървърът ви работи ефикасно и ефикасно, като осигурява стабилна и последователна производителност, трябва да премахнете грешките, често причинени от някаква тънкост в капана на работното натоварване или конфигурацията.

С нарастването на обема на данните става все по-сложно. Ето защо е от съществено значение да се оптимизират добре базите данни, за да се осигури ефективно изживяване на крайния потребител. Настройката на производителността на MySQL е най-доброто решение, тъй като ще помогне да се осигурят решения на тези проблеми с базата данни.

Настройка на производителността на MySQL

В тази статия ще намерите някои полезни съвети как да използвате настройката на производителността на MySQL. Това ще ви помогне да извлечете най-добрата производителност от вашия MySQL.

Стъпка 1:Не използвайте MySQL като опашка

Без вашата реализация, опашката и моделите, подобни на опашка, могат да се промъкнат във вашето приложение. Типичен пример е маркирането на имейли като неизпратени, изпращането им и след това маркирането им като изпратени. това е често срещан, но рядко незабележим проблем, който повечето потребители са склонни да игнорират.

Те причиняват две основни сложности на производителността:

  1. Те сериализират вашето работно натоварване, като по този начин предотвратяват изпълнението на задачите в паралелна последователност. В допълнение, те често водят до таблица, която съдържа незавършена работа и исторически данни от задания, които са били обработени преди много време. Това обикновено забавя скоростта на обработка и процеса.
  2. И двете добавят латентност към приложението и се зареждат в MySQL.

Стъпка 2:Профилирайте работното си натоварване

Профилирането на вашето работно натоварване е от съществено значение, тъй като ви помага да разберете как работи вашият сървър и времето, което прекарва за обработка на задачи. Най-добрият инструмент, който да ви помогне да направите това, е MySQL Enterprise Monitors Query анализатор от инструментариума Percona.

Забележка: Предлага се само за потребители на Linux

Инструментите могат да улавят заявките, изпълнявани от сървъра, и да връщат таблица с сортирани задачи в намаляване на реда на времето за отговор.

Профилирането на вашето работно натоварване разкрива най-скъпите заявки за по-нататъшна настройка. Времето е най-важно, защото това, което е важно е колко бързо се завършва при издаване на заявка.

Инструментите за профилиране също групират подобни заявки, което ви позволява да видите бавните и бързите заявки, но се изпълняват много пъти.

Стъпка 3:Разбиране на четирите основни ресурса

Процесорът, паметта, дискът и мрежата са четирите основни ресурса, необходими за функционирането на базата данни. Следователно е вероятно базата данни да работи лошо, ако някой от тези ресурси е претоварен, слаб или неправилен.

Винаги трябва да гарантирате, че всички споменати четири ресурса са силни и стабилни, за да може MySQL да работи безупречно. Организациите обикновено избират онези сървъри с бързи процесори и дискове, които могат да поберат повече слотове за памет.

Добавянето на памет е евтин и лесен начин за увеличаване на производителността с порядък, особено при натоварвания, свързани с диск. Това може да изглежда неразумно, но много дискове се използват прекомерно, тъй като няма достатъчно памет за съхраняване на работния набор от данни на сървъра.

Когато отстранявате неизправности, проверете внимателно производителността и използването на четирите ресурса, за да помогнете да определите статистическите данни за производителността на четирите ресурса. Наблюдението на тяхната производителност е важно, тъй като помага на потребителя да знае какво трябва да бъде подобрено или се нуждае от подмяна. Можете да изпробвате този метод, тъй като това е един от най-бързите методи за решаване на проблеми с производителността в MYSQL.

Стъпка 4:Филтрирайте резултатите първо по най-евтиния

Отличен начин за оптимизиране е първо да извършите евтината, неточна работа, след това упоритата и прецизна работа върху по-малкия, което води до набора от данни.

Пример:

Да предположим, че търсите нещо в рамките на даден радиус на географска точка. Първият инструмент в инструментариума на моя програмист е формулата на Haversine {Great circle} за изчисляване на разстоянието по повърхността на сфера.

Проблемът с техниката е, че формулата изисква много тригонометрични операции, които са много чувствителни на процесора. В резултат на това изчисленията са склонни да се изпълняват бавно и да накарат използването на процесора на машината да нарасне до небето.

Преди да използвате формулата, съкратете записите си до малко подмножество от общия брой и отрежете получения набор до точен кръг. Квадрат, който съдържа кръга, независимо дали е точно или неточно, е лесен начин да направите това. Това гарантира, че светът извън квадрата никога няма да бъде засегнат от всички тези скъпи тригонометрични функции.

Стъпка 5:Познаване и разбиране на двата смъртоносни капана за мащабируемост.

Мащабируемостта може да не е толкова неясна, колкото мнозина смятат. Вместо това има точни математически дефиниции на мащабируемостта, изразени като уравнения, които подчертават защо системите не се мащабират толкова добре, колкото трябва.

Законът за универсалната скалируемост е дефиниция, която е удобна за изразяване и количествено определяне на характеристиките на мащабируемостта на системите. Той обяснява проблемите с мащабирането по отношение на сериализацията и кръстосаните смущения, които са двете основни разходи.

Паралелните процеси, които трябва да спрат, за да се осъществи нещо сериализирано, по своята същност са ограничени в своята мащабируемост. Освен това, ако паралелните процеси трябва да комуникират помежду си, за да координират работата си, те се ограничават взаимно. Ето защо е за предпочитане да избягвате сериализацията и кръстосаните смущения, за да позволите на приложението ви да мащабира бързо и ефективно.

Стъпка 6:Не се фокусирайте твърде много върху конфигурацията

Хората прекарват твърде много време в настройване на конфигурации. Резултатът обикновено не е значително подобрение и понякога може да бъде много вреден. Настройките по подразбиране, които се доставят с MySQL, са един размер, не отговаря на нито един и са силно остарели, не е необходимо да конфигурирате нищо.

Така че е от съществено значение да получите правилно основните положения и да промените настройките само ако е необходимо. В много случаи инструментите за настройка на сървъра не се препоръчват, защото могат да подведат потребителите с противоречива информация. Някои имат опасни, неточни съвети, кодирани в тях, като съотношения на попадане в кеша и формули за консумация на памет.

Стъпка 7:Внимавайте за заявки за пагинация

Приложенията, които пагират обикновено поставят сървъра на колене. Оптимизациите често могат да бъдат намерени в самия друг потребителски интерфейс. Например, вместо да показвате точния брой страници в резултатите и връзките, можете да покажете само връзка към страница, която съдържа тази информация. По този начин можете да попречите на хората да претоварват оригиналната страница.

От страната на заявката, вместо да се използва отместване с ограничение, може да бъде избран още един ред и когато щракнете върху „следваща страница“, можете да посочите този последен ред като начална точка за следващия набор от резултати.

Стъпка 8:Запазете статистическите данни с нетърпение, предупреждавайте неохотно

Сигнализирането и наблюдението са от съществено значение, но това, което се случва с типичната система за наблюдение, е, че започва да изпраща фалшиви положителни резултати. Системните администратори настройват правила за филтриране на имейли, за да спрат шума и скоро вашата система за наблюдение става безполезна.

Важно е да уловите и запазите всички показатели, които евентуално можете, защото ще се радвате да ги имате, когато се опитате да разберете какво се е променило в системата. Освен това, когато възникне странен проблем, ще можете да посочите графика и лесно да проследите промяната в натоварването на сървъра.

Хората обикновено предупреждават за неща като съотношението на попадане в буфера или броя на временните таблици, създадени в секунда. Проблемът е, че няма разумен праг за такова съотношение. Освен това подходящият праг е различен между сървърите и от време на време, когато работата ви се променя.

В резултат на това предупреждавайте пестеливо и само при условия, които показват определен проблем, който може да се предприеме. Например, ниско съотношение на попадане в буфера не е приложимо, нито показва реален проблем, но сървър, който не реагира на опит за свързване, е действителен проблем, който трябва да бъде решен.

Стъпка 9:Научете трите правила за индексиране

Това е най-неразбраната тема в базите данни, защото има много начини да научите как работят индексите и как сървърът ги използва. Индексите, ако са правилно проектирани, служат за три важни цели в сървър на база данни;

  1. Вместо единични редове, индексите позволяват на сървъра да намира групи от съседни редове. Много хора смятат, че целта на индексите е да намират отделни редове, но намирането на единични редове води до произволни дискови операции, което прави сървъра много бавен. Намирането на групи от редове е много по-добро и интересно от намирането на редове един по един.
  2. Също така позволява на сървъра да избягва сортирането, като чете редовете в желания ред. Четенето на редове, за разлика от сортирането, е много по-бързо и по-евтино.
  3. Индексите също така позволяват на сървъра да удовлетворява цели заявки само от индекса, избягвайки изобщо необходимостта от достъп до таблета. Това е различно известно като индекс на covey или заявка само за индекс.

Стъпка 10:Възползвайте се от опита на вашите колеги

Бихте ли имали нещо против да не го направите сами? Да озадачавате проблемите и да правите това, което ви се струва логично и разумно, може да работи най-много, но не през цялото време. Затова вместо това изградете мрежа от ресурси, свързани с MySQL, надхвърлящи наборите от инструменти и ръководствата за отстраняване на неизправности.

Хората са невероятно осведомени, дебнещи се в пощенски списъци, форуми и т.н. Освен това конференциите, търговските изложения и събития на местни потребителски групи предоставят ценни възможности за получаване на прозрения и изграждане на взаимоотношения с колеги, които могат да ви помогнат.

За малцината, които търсят инструменти, които да допълнят тези съвети, можете да разгледате съветника за конфигуриране на Percona за MySQL и MySQL приставки за наблюдение на Percona.

Помощникът за конфигурация може да ви помогне при генерирането на базова линия. my.cnf файл за нов сървър, по-добър от примерните файлове, които се доставят със сървъра.

Съветникът за заявка, който е по-добър от примерните файлове, които се доставят със сървъра. Съветникът ще анализира вашия SQL, за да помогне за откриване на потенциално разрушителни модели, като например заявки за пагинация (съвет 7).

Плъгините за наблюдение на Percona са набори от плъгини за наблюдение и графики, които ви помагат да запазвате статистики с нетърпение и да предупреждавате неохотно (Стъпка № 8). Всички тези инструменти са свободно достъпни.

Предимства от настройката на производителността

Основното предимство е, че ви позволява да избягвате прекомерно обезпечаване и намаляване на разходите чрез правилно оразмеряване на вашите услуги. Той също така ви дава представа дали преместването на съхранение на данни или добавянето на капацитет на сървъра ще подобри производителността или не и ако да, колко ще бъде.

След като базата данни е настроена правилно, тя дава полезни резултати за производителност с страхотни функционалности. Той не само намалява нежеланото натоварване на задачи, но и оптимизира базата данни MySQL за по-бързо извличане на данни.

Други настройки могат да направят разлика в зависимост от вашето работно натоварване или хардуер. Целта е да ви дадем няколко настройки на производителността на MySQL, за да получите бързо разумна конфигурация на MySQL, без да прекарвате твърде много време в промяна на неосновни настройки или четене на документация, за да разберете кои настройки са важни за вас.

Заключение

В заключение, настройката на производителността предлага много предимства и се препоръчва при работа с големи масиви от данни, за да се подобри ефективността на вашия сървър. Като следвате съветите, дадени в тази статия, ще можете да извършвате удобно настройка на производителността на MySQL на вашия сървър и бази данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирате двойно кодирани UTF8 знаци (в таблица utf-8)

  2. Грешка при създаването на таблица:Имате грешка във вашия SQL синтаксис близо до 'order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id ' на ред 1

  3. Обединяване на две таблици с различен брой колони

  4. INSERT с SELECT

  5. mysql_insert_id безопасен ли е за използване?