Come ottimizzare MySQL per le performance

Esporta database MySQL

Migliorare le performance del database MySQL significa ottimizzare i tempi di risposta e quindi migliorare il funzionamento del sito e ridurre il caricamento delle pagine. Soprattutto se il sito è basato su un CMS come WordPress cercare di ridurre i tempi di visualizzazione, oltre a rendere migliore la user Experience, garantisce un miglior posizionamento su Google; infatti la velocità di caricamento è uno dei principali parametri per la classificazione nei motori di ricerca. Ottimizzare un database non è un’operazione complicata, basta seguire alcune raccomandazioni prima di modificare il contenuto.

Prima di modificare il database

Modificare il database MySQL non è difficile, ma se non si segue la procedura corretta si rischia di compromettere tutto il sito. Proprio per questo, prima di iniziare, è fortemente consigliato fare una copia degli attuali dati ed esportare la versione attuale.  Quindi, per non rischiare:

  • Esporta il database attuale, accedi al phpMyAdmin, seleziona il database e poi clicca sul comando “Esporta”;
  • Modifica un solo parametro alla volta, in questo modo potrai verificare immediatamente gli effetti della modifica ed eventuali messaggi di errori;

Esporta database MySQL

10 passaggi per ottimizzare il database MySQL

Vediamo nel dettaglio 10 passaggi che ci consentono di ottimizzare il database e migliorare il nostro sito.

  1. innodb_buffer_pool_size
    Questo parametro è quello per decidere la memoria a disposizione per il caching. Qui bisogna inserire il valore più alto disponibile in modo da garantire il massimo spazio in memoria. I valori standard che possiamo trovare sono 5-6 GB per server con 8 GB di RAM, 20-25 GB per server con 32 GB di RAM e 100-120 GB per server con 128 GB di RAM.
  2. innodb_log_fike_size
    Questo paramento rappresenta la dimensione dei file di log e, se lavoriamo con applicazioni a ciclo di scrittura intenso, è consigliabile aumentare il valore predefinito.
  3. max_connections
    Se ci capita di trovare l’errore “too many connections”, vuole dire che le applicazioni precedenti non hanno chiuso correttamente la comunicazione con il database. Di default il valore è 151, si può aumentare ma valori come 1000 connessioni, potrebbe mandare in crash il server.
  4. innodb_file_per_table
    Questo serve per indicare se i dati e gli indici devono essere conservati in un unico tablespace (= OFF) oppure in un file IBD separato per ogni tabella (= ON). Se il numero delle vostre tabelle non è eccessivamente alto, provate ad impostare il parametro su ON in modo da recuperare spazio.
  5.  innodb_flush_log_at_trx_commit
    Così come lo trovate indica che il database è ACID-compiant, che è una delle impostazioni più corrette per la sicurezza. Se il sito però gestisce molte scritture a disco continue e log redo, provate ad impostare il valore a 2. Noterete una velocità nelle operazioni, ma in caso di crash si potrebbero perdere alcuni dati.
  6. innodb_flush_metod
    Questo stabilisce il tipo ti scrittura di dati e log. L’impostazione consigliata è O_DIRECT in caso di hardware con crontoller RADI e fdatasync.
  7. innodb_log_buffer_size
    Qui è impostata la massima dimensione del buffer per quelle transazioni che sono rimaste sospese. Date un’occhiata anche al paramento innodb_log_waits e se non è uguale a zero, allora è consigliabile aumentare il valore (di default 1 MB) del buffer size.
  8. query_cache_size
    Per velocizzare le query sarebbe ideale impostare questo parametro su zero e cercare di aumentare l’indicizzazione o utilizzare strumenti di cache esterni.
  9. log_bin 
    Puoi attivare il logging binario per rendere il server una replica del database master. I file log vengono conservati e in questo modo non si rischia di esaurire lo spazio su disco. Ricorda di impostare anche il parametro expire_logs_days per indicare dopo quanti giorni si dovranno eliminare i vecchi log
  10. skip_name_resolve
    Se durante il processo di interrogazione dei DNS (ovvero quando un utente digita il dominio), si nota un rallentamento potrebbe essere causato da dei DNS lenti. Prova a disattivare i lookup DNS ma verifica che tutto funzioni correttamente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *