Uno dei principali motivi per cui i siti WordPress di grandi dimensioni rallentano è perché il loro database non è stato ottimizzato. Molti siti meno recenti utilizzano ancora il motore di archiviazione MyISAM nel loro database. Negli ultimi anni, InnoDB ha dimostrato di avere prestazioni superiori e di essere più affidabile. Un ottimo motivo per utilizzare InnoDB al posto di MyISAM è la mancanza di un blocco completo a livello di tabella. Ciò consente alle vostre query di avere tempi più rapidi di elaborazione.

InnoDB verso MyISAM

Ecco alcune delle principali differenze tra InnoDB e MyISAM:

  • InnoDB ha il blocco a livello di riga. MyISAM ha solo un blocco completo a livello di tabella.
  • InnoDB ha quella che viene chiamata integrità referenziale, che implica il supporto di chiavi esterne (RDBMS) e vincoli di relazione, MyISAM invece no (DMBS).
  • InnoDB supporta le transazioni, il che significa che potete eseguire il commit e il rollback. MyISAM invece no.
  • InnoDB è più affidabile in quanto utilizza i registri transazionali per l’autorecovery. MyISAM no.

State utilizzando MyISAM o InnoDB?

Se state utilizzando un sito WordPress abbastanza nuovo, è probabile che stiate già utilizzando il motore di archiviazione MySQL di InnoDB. Ma con i vecchi siti WordPress potreste fare un rapido controllo. Alcuni siti potrebbero anche avere tabelle MyISAM e InnoDB miste e abbinate. In questi siti potreste vedere dei miglioramenti convertendole tutte. Seguite questi semplici passaggi per effettuare un controllo.

Passo 1

Accedete a phpMyAdmin e fate clic sul vostro database mySQL.

Passo 2

Eseguite una scansione veloce o ordinate in base alla colonna “Tipo” per vedere quale tipo di motore di archiviazione utilizzano le vostre tabelle. Nell’esempio qui sotto potete vedere che due tabelle stanno ancora utilizzando MyISAM.

ricerca tabelle myisam

In alternativa, potete eseguire una query per verificare se esistono tabelle myISAM. Sostituite “database” con il nome del vostro database.

SELECT TABLE_NAME,
 ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'

Convertire MyISAM in InnoDB con phpMyAdmin

Potete convertire MyISAM in InnoDB abbastanza facilmente. Nell’esempio che segue è utilizzato nella tabella wp_comments. Basta eseguire il comando ALTER per convertire il motore di archiviazione in InnoDB. Nota: consigliamo sempre di eseguire il backup del database MySQL prima di eseguire qualsiasi operazione su di esso.

ALTER TABLE wp_comments ENGINE=InnoDB;
Assicuratevi di utilizzare MySQL 5.6.4 o versioni successive, altrimenti potreste incorrere in problemi dovuti al mancato supporto dell’indicizzazione full-text da parte InnoDB. Se siete clienti Kinsta, non dovete preoccuparti di questo.

In alternativa, potete anche convertire le tabelle manualmente con phpMyAdmin. Basta fare clic sulla tabella myISAM, poi sulla scheda “Operazioni”, e modificare il motore di archiviazione.

convertire una tabella myisam in innodb in phpmyadmin

Convertire MyISAM in InnoDB con WP-CLI

WP-CLI è un tool da linea di comando che consente agli sviluppatori di gestire attività comuni (e non tanto comuni) di un’installazione di WordPress. Dai un’occhiata a questo articolo in cui si spiega come convertire MyISAM in InnoDB con WP-CLI .