Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Najlepsze praktyki optymalizacji bazy danych MySQL

„Najlepsza praktyka” to:

  1. Zmierz wydajność, izolując odpowiedni podsystem najlepiej, jak potrafisz.
  2. Zidentyfikuj główną przyczynę wąskiego gardła. Czy jesteś związany I/O? Związany z procesorem? Związany z pamięcią? Czekasz na zamki?
  3. Wprowadź zmiany, aby złagodzić odkrytą główną przyczynę.
  4. Zmierz ponownie, aby wykazać, że naprawiłeś wąskie gardło i o ile .
  5. Przejdź do kroku 2 i powtarzaj w razie potrzeby, aż system będzie działał wystarczająco szybko.

Subskrybuj kanał RSS pod adresem http://www.mysqlperformanceblog.com i przeczytaj także jej artykuły historyczne. To niezwykle przydatne źródło wiedzy związanej z wydajnością. Na przykład pytałeś o InnoDB vs. MyISAM. Ich wniosek:InnoDB ma średnio ~30% wyższą wydajność niż MyISAM. Chociaż istnieje również kilka scenariuszy użycia, w których MyISAM przewyższa InnoDB.

Autorzy tego bloga są również współautorami książki „High Performance MySQL”, o której wspomina @Andrew Barnett.

Ponowny komentarz od @ʞɔıu:Jak stwierdzić, czy jesteś związany we/wy, czy procesor czy pamięć, zależy od platformy. System operacyjny może oferować narzędzia takie jak ps, iostat, vmstat lub top. Lub może być konieczne uzyskanie narzędzia innej firmy, jeśli Twój system operacyjny go nie zapewnia.

Zasadniczo każdy zasób, który jest ustalony na poziomie 100% wykorzystania/nasycenia, może być wąskim gardłem. Jeśli obciążenie procesora jest niskie, ale obciążenie I/O jest maksymalne dla Twojego sprzętu, oznacza to, że jesteś związany z I/O.

To jednak tylko jeden punkt danych. Środek zaradczy może również zależeć od innych czynników. Na przykład, złożone zapytanie SQL może wykonywać sortowanie plików, co sprawia, że ​​operacje we/wy są zajęte. Czy powinieneś wrzucić do niego więcej/szybszy sprzęt, czy też przeprojektować zapytanie, aby uniknąć sortowania plików?

W poście na StackOverflow jest zbyt wiele czynników, które można podsumować, a fakt, że istnieje wiele książek na ten temat, to potwierdza. Wydajne działanie baz danych i jak najlepsze wykorzystanie zasobów to praca na cały etat, wymagająca specjalistycznych umiejętności i ciągłej nauki.

Jeff Atwood właśnie napisał fajny artykuł na blogu o znajdowaniu wąskich gardeł w systemie:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień nazwę tabeli w MySQL

  2. jak używać polubienia z sprzężeniem w sql?

  3. Jak przyciąć pierwsze trzy znaki na podstawie pierwszej litery (wyrażenia) przed wstawieniem do bazy danych

  4. Zwracaj tylko wartości liczbowe w MySQL

  5. MySQL tworzy bazę danych, jeśli nie istnieje