MySQL
Konfiguration och inställning
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