Sök…


Anmärkningar

Konfiguration sker på ett av tre sätt:

  • kommandoradsalternativ
  • my.cnf konfigurationsfilen
  • ställa in variabler från servern

Kommandoradsalternativ har formen mysqld --long-parameter-name=value --another-parameter . Samma parametrar kan placeras i my.conf konfigurationsfilen. Vissa parametrar kan konfigureras med systemvariabler från MySQL. Kontrollera den officiella dokumentationen för en komplett lista över parametrar.

Variabler kan ha streck - eller understrukna _ . Utrymmen kan finnas runt = . Stora siffror kan fyllas med K , M , G för kilo-, mega- och giga-. En inställning per rad.

Flaggor: Vanligtvis är ON och 1 synonyma, ditto för OFF och 0 . Vissa flaggor har inget efter dem.

När du placerar inställningarna i my.cnf alla inställningar för servern vara i avsnittet [mysqld] , så lägg inte inställningar [mysqld] i filen. (Obs! För verktyg som tillåter flera mysql-instanser att dela en my.cnf, kan avsnittnamnen vara olika.)

InnoDB-prestanda

Det finns hundratals inställningar som kan placeras i my.cnf. För "lite" -användaren av MySQL spelar de ingen roll så mycket.

När din databas blir icke-trivial rekommenderas att du ställer in följande parametrar:

innodb_buffer_pool_size

Detta bör ställas in på cirka 70% av tillgängligt RAM (om du har minst 4 GB RAM; en mindre procentandel om du har en liten VM eller antik maskin). Inställningen styr mängden cache som används av InnoDB ENGINE. Därför är det mycket viktigt för InnoDB: s prestanda.

Parameter för att tillåta enorma data att infoga

Om du behöver lagra bilder eller videor i kolumnen måste vi ändra värdet efter behov av din applikation

max_allowed_packet = 10M

M är Mb, G i Gb, K i Kb

Öka stränggränsen för group_concat

group_concat används för att sammanfoga värden som inte är noll i en group . Maximal längd på den resulterande strängen kan ställas in med alternativet group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

Att ställa in GLOBAL variabeln kommer att säkerställa en permanent ändring, medan inställningen av SESSION variabeln kommer att ställa in värdet för den aktuella sessionen.

Minimal InnoDB-konfiguration

Detta är en helt minimal inställning för MySQL-servrar som använder InnoDB-tabeller. Med hjälp av InnoDB krävs inte frågecache. Återvinn hårddiskutrymme när en tabell eller databas är DROP ed. Om du använder SSD: er är spolning en redundant operation (SDD: er är inte sekventiella).

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

samtidighet

Se till att vi kan skapa mer än de fyra standard trådarna genom att ställa innodb_thread_concurrency till oändlighet (0); detta låter InnoDB besluta baserat på optimalt utförande.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Hårddiskanvändning

Ställ in kapaciteten (normal belastning) och kapacitet_max (absolut maximalt) för IOPS för MySQL. Standarden på 200 är bra för hårddiskar, men idag, med SSD: er som kan tusentals IOPS, kommer du sannolikt att vilja justera detta nummer. Det finns många tester du kan köra för att bestämma IOPS. Värdena ovan bör vara nästan den gränsen om du kör en dedicerad MySQL-server . Om du kör andra tjänster på samma maskin bör du fördela efter behov.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM-användning

Ställ in RAM-minnet tillgängligt för MySQL. Medan tumregeln är 70-80%, beror det verkligen på om din instans är tillägnad MySQL eller hur mycket RAM som finns tillgängligt. Slösa inte RAM (dvs. resurser) om du har mycket tillgängligt.

innodb_buffer_pool_size = 10G

Säkra MySQL-kryptering

Standardkryptering aes-128-ecb använder ECB-läge (Electronic Codebook), vilket är osäkert och bör aldrig användas. Lägg istället till följande i din konfigurationsfil:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow