Szukaj…


Uwagi

Konfiguracja odbywa się na jeden z 3 sposobów:

  • opcje wiersza poleceń
  • plik konfiguracyjny my.cnf
  • ustawianie zmiennych z poziomu serwera

Opcje wiersza poleceń mają postać mysqld --long-parameter-name=value --another-parameter . Te same parametry można umieścić w pliku konfiguracyjnym my.conf . Niektóre parametry można konfigurować przy użyciu zmiennych systemowych z poziomu MySQL. Sprawdź oficjalną dokumentację, aby uzyskać pełną listę parametrów.

Zmienne mogą mieć myślnik - lub podkreślenie _ . Wokół = mogą istnieć spacje. Duże liczby mogą być dodawane przez K , M , G dla kilo-, mega- i giga-. Jedno ustawienie na linię.

Flagi: zwykle ON i 1 są synonimami, to samo dla OFF i 0 . Niektóre flagi nie mają po nich nic.

Umieszczając ustawienia w my.cnf , wszystkie ustawienia serwera muszą znajdować się w sekcji [mysqld] , więc nie dodawaj ślepo ustawień na końcu pliku. (Uwaga: w przypadku narzędzi, które pozwalają wielu instancjom mysql współdzielić jeden plik my.cnf, nazwy sekcji mogą być inne.)

Wydajność InnoDB

Istnieją setki ustawień, które można umieścić w my.cnf. Dla „lite” użytkownika MySQL nie będą one miały tak dużego znaczenia.

Gdy baza danych stanie się nietrywialna, zaleca się ustawienie następujących parametrów:

innodb_buffer_pool_size

Powinno to być ustawione na około 70% dostępnej pamięci RAM (jeśli masz co najmniej 4 GB pamięci RAM; mniejszy procent, jeśli masz małą maszynę wirtualną lub starą maszynę). To ustawienie kontroluje wielkość pamięci podręcznej używanej przez SILNIK InnoDB. Dlatego jest to bardzo ważne dla wydajności InnoDB.

Parametr pozwalający na wstawienie ogromnych danych

Jeśli musisz przechowywać zdjęcia lub filmy w kolumnie, musimy zmienić wartość zgodnie z potrzebami aplikacji

max_allowed_packet = 10 mln

M oznacza Mb, G w Gb, K w Kb

Zwiększ limit ciągów dla group_concat

group_concat służy do łączenia wartości niepustych w group . Maksymalną długość wynikowego ciągu można ustawić za pomocą opcji group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

Ustawienie zmiennej GLOBAL zapewni trwałą zmianę, natomiast ustawienie zmiennej SESSION spowoduje ustawienie wartości dla bieżącej sesji.

Minimalna konfiguracja InnoDB

Jest to absolutna minimalna konfiguracja serwerów MySQL korzystających z tabel InnoDB. Za pomocą InnoDB pamięć podręczna zapytań nie jest wymagana. Odzyskaj miejsce na dysku, gdy tabela lub baza danych jest DROP ed. Jeśli używasz dysków SSD, opróżnianie jest operacją nadmiarową (dyski SDD nie są sekwencyjne).

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

Konkurencja

Upewnij się, że możemy utworzyć więcej niż 4 domyślne wątki, ustawiając innodb_thread_concurrency na nieskończoność (0); pozwala to InnoDB decydować w oparciu o optymalne wykonanie.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Wykorzystanie dysku twardego

Ustaw pojemność (normalne obciążenie) i pojemność_maks. (Absolutne maksimum) IOPS dla MySQL. Domyślna wartość 200 jest odpowiednia dla dysków HDD, ale obecnie, w przypadku dysków SSD obsługujących tysiące IOPS, prawdopodobnie będziesz chciał dostosować tę liczbę. Istnieje wiele testów, które można uruchomić, aby określić IOPS. Powyższe wartości powinny być prawie takie, jeśli korzystasz z dedykowanego serwera MySQL . Jeśli korzystasz z innych usług na tym samym komputerze, powinieneś przydzielić je odpowiednio.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

Wykorzystanie pamięci RAM

Ustaw dostępną pamięć RAM dla MySQL. Chociaż ogólna zasada wynosi 70–80%, tak naprawdę zależy to od tego, czy Twoja instancja jest poświęcona MySQL, oraz od ilości dostępnej pamięci RAM. Nie marnuj pamięci RAM (tj. Zasobów), jeśli masz dużo dostępnych.

innodb_buffer_pool_size = 10G

Bezpieczne szyfrowanie MySQL

Domyślne szyfrowanie aes-128-ecb wykorzystuje tryb elektronicznej książki kodowej (ECB), który jest niepewny i nigdy nie powinien być używany. Zamiast tego dodaj do pliku konfiguracyjnego:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow