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

15 przydatnych wskazówek dotyczących dostrajania i optymalizacji wydajności MySQL/MariaDB

MySQL to potężny system zarządzania relacyjną bazą danych o otwartym kodzie źródłowym lub w skrócie RDBMS . Został wydany w 1995 roku (20 lat). Używa ustrukturyzowanego języka zapytań co jest prawdopodobnie najpopularniejszym wyborem do zarządzania treścią w bazie danych. Najnowsza wersja MySQL to 5.6.25 i został wydany 29 maja 2015 .

Ciekawostką dotyczącą MySQL jest fakt, że nazwa pochodzi od Michaela Wideniusa (twórca MySQL) córka My. Nawet chociaż istnieje wiele interesujących faktów na temat MySQL, ten artykuł ma na celu pokazanie kilku przydatnych praktyk, które pomogą Ci zarządzać serwerem MySQL.

W kwietniu 2009 projekt MySQL został kupiony przez Oracle. W rezultacie fork społeczności MySQL o nazwie MariaDB został stworzony. Głównym powodem stworzenia widelca było utrzymanie projektu jako wolnego w ramach Powszechnej Licencji Publicznej.

Dzisiaj MySQL i MariaDB są jednymi z najczęściej (jeśli nie najczęściej) używanymi RDBMS używanymi w aplikacjach internetowych, takich jak WordPress , Joomla , Magento i inne.

Ten artykuł pokaże Ci kilka podstawowych, ale użytecznych wskazówek, jak zoptymalizować i dostroić wydajność MySQL/MariaDB. Pamiętaj, że w tym artykule założono, że masz już zainstalowany MySQL lub MariaDB. Jeśli nadal zastanawiasz się, jak zainstalować je w swoim systemie, możesz skorzystać z naszych obszernych przewodników tutaj:

  1. Instalacja LAMP na RHEL/CentOS 7
  2. Instalowanie LAMP w Fedorze 22
  3. Konfiguracja LAMP w Ubuntu 15.04
  4. Instalacja MariaDB na Debianie 8
  5. Zainstaluj MariaDB w Gentoo Linux
  6. Zainstaluj MariaDB w Arch Linux

Ważne :Zanim zaczniemy – nie akceptuj ślepo tych sugestii. Każda konfiguracja MySQL jest wyjątkowa i wymaga dodatkowego przemyślenia przed wprowadzeniem jakichkolwiek zmian.

Rzeczy, które musisz wiedzieć:

  1. Plik konfiguracyjny MySQL/MariaDB znajduje się w /etc/my.cnf . Za każdym razem, gdy modyfikujesz ten plik, musisz ponownie uruchomić usługę MySQL, aby nowe zmiany zaczęły obowiązywać.
  2. Za napisanie tego artykułu MySQL w wersji 5.6 został użyty jako szablon.

1. Włącz InnoDB file-per-table

Najpierw należy wyjaśnić, że InnoDB to silnik pamięci masowej. MySQL i MariaDB używają InnoDB jako domyślnego silnika przechowywania. W przeszłości MySQL służył do przechowywania tabel i indeksów bazy danych w systemowej przestrzeni tabel. To podejście było przeznaczone dla serwerów, których jedynym celem jest przetwarzanie baz danych, a ich dysk pamięci nie jest używany do żadnych innych celów.

InnoDB zapewnia bardziej elastyczne podejście, a każda informacja z bazy danych jest przechowywana w pliku .ibd plik danych. Każdy .ibd plik reprezentuje własny obszar tabel. W ten sposób operacje na bazie danych, takie jak „OBCIĄGNIJ ” można wykonać szybciej, a także odzyskać nieużywane miejsce podczas upuszczania lub obcinania tabeli bazy danych.

Kolejną zaletą tej konfiguracji jest fakt, że niektóre tabele bazy danych można przechowywać na osobnym urządzeniu pamięci masowej. Może to znacznie poprawić I/O załadować na Twoje dyski.

innodb_file_per_table jest domyślnie włączone w MySQL 5.6 i nowszych. Możesz to zobaczyć w /etc/my.cnf plik. Dyrektywa wygląda tak:

innodb_file_per_table=1

2. Przechowuj dane bazy danych MySQL na osobnej partycji

Uwaga :Ta konfiguracja działa tylko z MySQL, ale nie z MariaDB.

Czasami odczyt/zapis systemu operacyjnego może spowolnić działanie serwera MySQL, zwłaszcza jeśli znajduje się na tym samym dysku twardym. Zamiast tego polecam używanie oddzielnego dysku twardego (najlepiej SSD) dla usługi MySQL.

Aby zakończyć, musisz podłączyć nowy dysk do komputera/serwera. Na potrzeby tego artykułu założę, że dysk będzie pod /dev/sdb .

Następnym krokiem jest przygotowanie nowego dysku:

# fdisk /dev/sdb

Teraz naciśnij „n ”, aby utworzyć nową partycję. Następnie naciśnij „p ”, aby nowa partycja stała się podstawową. Następnie ustaw numer partycji od 1-4 . Następnie wybierz rozmiar partycji. Naciśnij Enter tutaj. W następnym kroku będziesz musiał skonfigurować rozmiar partycji.

Jeśli chcesz wykorzystać cały dysk, naciśnij jeszcze raz enter. W przeciwnym razie możesz ręcznie ustawić rozmiar nowej partycji. Gdy wszystko będzie gotowe, naciśnij „w ”, aby napisać zmiany. Teraz będziemy musieli stworzyć system plików dla naszej nowej partycji. Można to łatwo zrobić za pomocą:

# mkfs.ext4 /dev/sdb1

Teraz zamontujemy naszą nową partycję w folderze. Nazwałem swój folder „ssd ” i utworzony w katalogu głównym:

# mkdir /ssd/

Jesteśmy gotowi do zamontowania nowej partycji, którą właśnie utworzyliśmy w nowym folderze:

# mount /dev/sdb1  /ssd/

Możesz wykonać montowanie przy starcie, dodając następującą linię w /etc/fstab plik.

/dev/sdb1 /ssd ext3 defaults 0 0

Teraz jesteś gotowy do przeniesienia MySQL na nowy dysk. Najpierw zatrzymaj usługę MySQL za pomocą:

# service mysqld stop

Polecam również zatrzymanie Apache/nginx, aby zapobiec wszelkim próbom zapisu w bazach danych:

# service httpd stop
# service nginx stop

Teraz skopiuj cały katalog MySQL na nowy dysk:

# cp /var/lib/mysql /ssd/ -Rp

Może to chwilę potrwać, w zależności od lokalizacji Twoich baz danych MySQL. Po zakończeniu tego procesu zmień nazwę katalogu MySQL:

# mv /var/lib/mysql /var/lib/mysql-backup

Następnie utworzymy dowiązanie symboliczne.

# ln -s /ssd/mysql /var/lib/mysql

Teraz jesteś gotowy do uruchomienia MySQL i usługi sieciowej:

# service mysqld start
# service httpd start
# service nginx start

W tym momencie Twoje bazy danych MySQL będą dostępne z nowego dysku.

Strony:1 2 3 4
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zainstaluj serwer WWW w Windows XP z Apache2, PHP5 i MySQL4 – część 4

  2. Czy możesz dodać oświadczenie if w ORDER BY?

  3. Błąd krytyczny:operator [] nie jest obsługiwany dla ciągów

  4. Rozszerzenie mysql jest przestarzałe i zostanie usunięte w przyszłości:zamiast tego użyj mysqli lub PDO

  5. ustawianie globalnego trybu sql_mode w mysql