Ricerca…


Osservazioni

La configurazione avviene in uno dei 3 modi:

  • opzioni della riga di comando
  • il file di configurazione my.cnf
  • impostazione delle variabili dall'interno del server

Le opzioni della riga di comando hanno la forma mysqld --long-parameter-name=value --another-parameter . Gli stessi parametri possono essere inseriti nel file di configurazione my.conf . Alcuni parametri sono configurabili utilizzando le variabili di sistema da MySQL. Controlla la documentazione ufficiale per un elenco completo dei parametri.

Le variabili possono avere dash - o underscore _ . Gli spazi possono esistere attorno al = . I numeri grandi possono essere suffissi da K , M , G per kilo-, mega- e giga-. Un'impostazione per riga.

Flags: solitamente ON e 1 sono sinonimi, idem per OFF e 0 . Alcune bandiere non hanno nulla dietro di loro.

Quando si inseriscono le impostazioni in my.cnf , tutte le impostazioni per il server devono essere nella sezione [mysqld] , quindi non aggiungere ciecamente le impostazioni alla fine del file. (Nota: per gli strumenti che consentono a più istanze di mysql di condividere un my.cnf, i nomi delle sezioni potrebbero essere diversi).

Prestazioni InnoDB

Ci sono centinaia di impostazioni che possono essere inserite in my.cnf. Per l'utente "lite" di MySQL, non contano tanto.

Una volta che il tuo database diventa non banale, è consigliabile impostare i seguenti parametri:

innodb_buffer_pool_size

Questo dovrebbe essere impostato su circa il 70% della RAM disponibile (se si dispone di almeno 4 GB di RAM, una percentuale inferiore se si dispone di una minuscola VM o macchina antica). L'impostazione controlla la quantità di cache utilizzata da InnoDB ENGINE. Quindi, è molto importante per le prestazioni di InnoDB.

Parametro per consentire l'inserimento di dati enormi

Se è necessario memorizzare immagini o video nella colonna, è necessario modificare il valore in base alle esigenze dell'applicazione

max_allowed_packet = 10M

M è Mb, G in Gb, K in Kb

Aumentare il limite di stringa per group_concat

group_concat è usato per concatenare valori non nulli in un group . La lunghezza massima della stringa risultante può essere impostata utilizzando l'opzione group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

L'impostazione della variabile GLOBAL garantirà un cambiamento permanente, mentre l'impostazione della variabile SESSION imposterà il valore per la sessione corrente.

Configurazione InnoDB minima

Questa è una configurazione minima per i server MySQL che utilizzano le tabelle InnoDB. Usando InnoDB, la cache delle query non è richiesta. Recupera spazio su disco quando una tabella o un database è DROP ed. Se si utilizzano SSD, lo svuotamento è un'operazione ridondante (gli SDD non sono sequenziali).

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

Concorrenza

Assicurati di poter creare più di 4 thread predefiniti impostando innodb_thread_concurrency su infinito (0); ciò consente a InnoDB di decidere in base all'esecuzione ottimale.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Utilizzo del disco rigido

Impostare la capacità (carico normale) e capacity_max (massimo assoluto) di IOPS per MySQL. Il valore predefinito di 200 va bene per HDD, ma in questi giorni, con SSD in grado di migliaia di IOPS, è probabile che si desideri regolare questo numero. Esistono molti test che è possibile eseguire per determinare IOPS. I valori sopra indicati dovrebbero essere quasi quel limite se si sta utilizzando un server MySQL dedicato . Se stai eseguendo altri servizi sulla stessa macchina, dovresti ripartire come appropriato.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

Utilizzo della RAM

Imposta la RAM disponibile su MySQL. Sebbene la regola empirica sia del 70-80%, ciò dipende in realtà dall'opportunità o meno dell'istanza di MySQL e dalla quantità di RAM disponibile. Non sprecare RAM (cioè risorse) se hai molto a disposizione.

innodb_buffer_pool_size = 10G

Proteggi la crittografia MySQL

La crittografia predefinita aes-128-ecb utilizza la modalità Electronic Codebook (ECB), che non è sicura e non dovrebbe mai essere utilizzata. Invece, aggiungi quanto segue al tuo file di configurazione:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow