Zoeken…


Opmerkingen

Configuratie gebeurt op een van de volgende 3 manieren:

  • opdrachtregelopties
  • het my.cnf configuratiebestand
  • variabelen instellen vanuit de server

Opdrachtregelopties hebben de vorm mysqld --long-parameter-name=value --another-parameter . Dezelfde parameters kunnen in het my.conf configuratiebestand worden geplaatst. Sommige parameters kunnen worden geconfigureerd met behulp van systeemvariabelen vanuit MySQL. Raadpleeg de officiële documentatie voor een volledige lijst met parameters.

Variabelen kunnen een streepje - of onderstrepingsteken _ . Spaties kunnen bestaan rond de = . Grote aantallen kunnen worden gevolgd door K , M , G voor kilo-, mega- en giga-. Eén instelling per regel.

Vlaggen: meestal ON en 1 zijn synoniem, idem voor OFF en 0 . Sommige vlaggen hebben niets achter zich.

Wanneer u de instellingen in my.cnf plaatst, moeten alle instellingen voor de server in de sectie [mysqld] , dus voeg niet blindelings instellingen toe aan het einde van het bestand. (Opmerking: voor tools waarmee meerdere MySQL-exemplaren één my.cnf kunnen delen, kunnen de sectienamen verschillen.)

InnoDB-prestaties

Er zijn honderden instellingen die in my.cnf kunnen worden geplaatst. Voor de 'lite' gebruiker van MySQL doen ze er niet zoveel toe.

Zodra uw database niet-triviaal wordt, is het raadzaam om de volgende parameters in te stellen:

innodb_buffer_pool_size

Dit moet worden ingesteld op ongeveer 70% van het beschikbare RAM-geheugen (als u minimaal 4 GB RAM heeft; een kleiner percentage als u een kleine VM of antieke machine hebt). De instelling bepaalt de hoeveelheid cache die wordt gebruikt door de InnoDB ENGINE. Daarom is het erg belangrijk voor de prestaties van InnoDB.

Parameter waarmee enorme gegevens kunnen worden ingevoegd

Als u afbeeldingen of video's in de kolom wilt opslaan, moeten we de waarde wijzigen die uw toepassing nodig heeft

max_allowed_packet = 10M

M is Mb, G in Gb, K in Kb

Verhoog de tekenreekslimiet voor group_concat

group_concat wordt gebruikt om niet-nulwaarden in een group group_concat . De maximale lengte van de resulterende tekenreeks kan worden ingesteld met de optie group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

Het instellen van de GLOBAL variabele zorgt voor een permanente verandering, terwijl het instellen van de variabele SESSION de waarde voor de huidige sessie instelt.

Minimale InnoDB-configuratie

Dit is een absoluut minimum voor MySQL-servers die InnoDB-tabellen gebruiken. Met behulp van InnoDB is querycache niet vereist. Win schijfruimte terug wanneer een tabel of database DROP ed is. Als u SSD's gebruikt, is spoelen een redundante bewerking (SDD's zijn niet sequentieel).

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

samenloop

Zorg ervoor dat we meer dan de standaard 4 threads kunnen maken door innodb_thread_concurrency te stellen op oneindig (0); dit laat InnoDB beslissen op basis van optimale uitvoering.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Gebruik van de harde schijf

Stel de capaciteit (normale belasting) en capacity_max (absoluut maximum) van IOPS voor MySQL in. De standaardwaarde van 200 is prima voor HDD's, maar tegenwoordig, met SSD's die duizenden IOPS ondersteunen, wilt u dit aantal waarschijnlijk aanpassen. Er zijn veel tests die u kunt uitvoeren om IOPS te bepalen. De bovenstaande waarden moeten bijna die limiet zijn als u een speciale MySQL-server gebruikt . Als u andere services op dezelfde computer uitvoert, moet u de juiste verdeling maken.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM-gebruik

Stel de beschikbare RAM in op MySQL. Hoewel de vuistregel 70-80% is, hangt dit echt af van het feit of uw exemplaar al dan niet is toegewezen aan MySQL en hoeveel RAM er beschikbaar is. Heeft RAM (dwz middelen) niet verspillen als je een heleboel beschikbaar.

innodb_buffer_pool_size = 10G

Veilige MySQL-codering

De standaardcodering aes-128-ecb maakt gebruik van de Electronic Codebook (ECB) -modus, die onveilig is en nooit mag worden gebruikt. Voeg in plaats daarvan het volgende toe aan uw configuratiebestand:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow