Condividi su: fb in

I vantaggi di passare a MySQL 8 per i siti WordPress

1. MySQL e WordPress.

Oracle MySQL Community Edition è il database server open-source più diffuso a livello mondiale. Oltre il 90% dei siti WordPress utilizzano MySQL Community Edition, meno del 10% utilizza MariaDB come database server.

Più del 30% dei siti web mondiali utilizza WordPress, un dato impressionante se si pensa che nel 2011 WordPress era usato da circa il 13% dei siti web.

Si stima che a ottobre 2017 circa il 5,5% dei siti WordPress utilizzassero MySQL 5.7, quella che era l’ultima release nel 2017. Circa il 40% dei siti WordPress utilizzava MySQL 5.6 e circa il 47% dei siti WordPress usava MySQL 5.5. Quasi il 5% dei siti WordPress utilizzava addirittura MySQL 5.1. Non credo che oggi la situazione sia molto diversa.

Visti questi dati, pensare di passare a MySQL 8.0 potrebbe sembrare superfluo.

2. Gli aggiornamenti tecnologici costano tempo o denaro, ma quanto costa non farli?

Soprattutto in Italia, i siti web sembrano tecnicamente arretrati. Ad esempio, i siti con https sono una rarità, per non parlare di quelli con http/2. Non parlo solo di piccoli blog ma anche di grandi siti web.

Forse in Italia si pensa quasi solo ai contenuti e alla grafica dei siti web. Invece, gli utenti e i motori di ricerca notano le differenze tra un sito con performance ottimizzate e con un buon hosting, e uno che ha curato solo testi e grafica.  Spesso nemmeno l’ottimizzazione di WordPress viene presa in considerazione.

A un sito web serve un’infrastruttura tecnica di qualità, altrimenti i siti web, anche se belli, restano lenti e poco affidabili. Di conseguenza, la SEO non può che essere penalizzata da queste carenze. Bastano dei software obsoleti e dei protocolli di comunicazione datati per rovinare il lavoro fatto sul sito. Specialmente se il traffico Internet sul sito dovesse aumentare. Se il sito non ha un’infrastruttura tecnologica aggiornata, le probabilità che venga hackerato aumentano con l’aumentare del traffico sul sito.

Certo, il passaggio a MySQL 8 è stato forse ora un po’ prematuro. Però, spesso si scopre solo dopo un po’ di tempo quanto sono utili le ultime novità.

Ad esempio, per me è stato relativamente facile e sicuro fare l’upgrade a MySQL 8 perché ho utilizzato un mio cloud hosting. Il cloud hosting mi permette di provare tutte le nuove tecnologie software e hardware senza dover aspettare. Quando qualcosa va male torno indietro velocemente. Inoltre, posso ottimizzare meglio WordPress e il LAMP, ottenendo così un ulteriore aumento di performance e affidabilità.

Se mi fossi accontentato starei ancora gestendo i siti web su hosting condivisi lenti, con MySQL 5,6 o 5.5 e con gli snapshot che costano un occhio della testa. Ovviamente, questo sarà un vantaggio anche per i mie clienti che potranno beneficiare dell’hosting con MySQL 8.

3. La sintesi delle novità introdotte in MySQL 8 rispetto a MYSQL 5.7

  1. MySQL 8.0 dovrebbe essere fino a due volte più veloce di MySQL 5.7.
  2. Affidabilità dei comandi DDL. Con le Atomic DDL gli statement sono diventati atomici e a prova di crash, questo permette alle transazioni fatte con le DDL di essere più affidabili.
  3. Offre una maggiore facilità ed efficacia nel difendersi dagli attacchi informatici: miglioramento dell’OpenSSL, nuova autenticazione di default, ecc.
  4. Introduce il supporto al formato JSON con un formato specifico e una ventina di nuove funzioni SQL.
  5. NoSQL, ovvero la possibilità di usare un formato libero dagli schemi SQL.
  6. Il formato di default dei caratteri è ora utf8mb4.
  7. Facilita l’utilizzo dei database MySQL con i GIS (Geographic information system).
  8. Come in parte visto nei punti precedenti, sono state introdotte molte nuove funzionalità utili e che semplificano la vita ai programmatori, riducendo i rischi delle fasi di test.
  9. Sono state deprecate alcune funzionalità della versione MySQL 5.7.

Tutti i dettagli delle novità di MySQL 8.0 li trovi direttamente sul sito ufficiale.

4. Conviene passare a MySQL 8.0 se si usa WordPress?

Performance

Se il database utilizzato da WordPress è molto grande o se il sito ha molto traffico ci sono sicuramente dei vantaggi in termini di performance nel passare a MySQL 8. Per un sito WordPress di piccole dimensioni i vantaggi in termini di performance sono trascurabili. Ci sono molte altre strategie più efficaci per velocizzare un sito WordPress.

Volendo ottimizzare solo le performance del database, la prima cosa da fare è ripulirlo da tutti i dati inutili che spesso contiene. Utilizzare il più possibile i dati in cache invece di prenderli dal database, ecc.

Sicurezza

Con MySQL 8.0 ci sono dei miglioramenti in termini di sicurezza, però nei siti WordPress la maggior parte degli attacchi arrivano da altre direzioni. Comunque, più è alto il livello di sicurezza meglio è, non si sa mai dove arriveranno i nuovi attacchi.

La maggioranza dei siti WordPress usa vecchie versioni di MySQL, gli attacchi informatici saranno più probabili e facili nel gregge più grande e indifeso. Quindi, passare a MySQL 8.0 aumenta notevolmente il livello di sicurezza del database.

Sviluppi futuri

Visto che la nuova versione introduce molte nuove funzionalità, gli sviluppatori WordPress non tarderanno a sfruttarle. Con MySQL 8 ci saranno sicuramente nuove applicazioni, miglioramenti ulteriori della sicurezza e delle performance dei siti WordPress.

Migrazione del database da MySQL 5.7 a MySQL 8.0

La migrazione da My SQL 5.7 a MySQL 8.0 non è ancora semplice e forse mai lo sarà. La prima cosa da fare è portare il database MySQL alla versione 5.7. Questo per molti sarà già un problema. Prima vanno fatti dei test per trovare eventuali incompatibilità con MySQL 8. Il primo prerequisito è l’utilizzo di InnoDB per il salvataggio dei dati. Qui ci sono le istruzioni dettagliate per fare la migrazione da MySQL 5.7 a MySQL 8.0..

Come ho migrato i mie siti WordPress su MySQL 8,0 e Ubuntu 18.04

Ho preferito fare una nuova istanza Linux su un nuovo server virtuale privato (VPS) partendo da zero. Ho così installando il LAMP pezzo dopo pezzo: Ubuntu 18,04, MySQL Community server 8.0.11, Apache2, PHP 7.2.

Il trasferimento dei database è iniziato esportando, con mysqldump, i database dal server MySQL 5.7. Dopo ho caricato i file che avevo esportato nel nuovo VPS. Alla fine, sempre con mysqldump, ho importato i database in MySQL 8.0.

Tutto funziona perfettamente, da fine Ottobre 2018 è ora disponibile MySQL 8.0.13 e anche con questa ultima versione non ho riscontrato nessun problema. Se avessi avuto problemi nella migrazione, o con un aggiornamento successivo, avrei ricaricato una vecchia istanza memorizzata.

Con questa migrazione ho fatto tanti cambiamenti. Il vecchio server Linux aveva un VPS con Ubuntu 16.04 mentre il nuovo server ha un VPS con Ubuntu 18.04. Il nuovo VPS gira su un altro server che ha la stessa RAM ma un processore più veloce.

Forse in futuro ci saranno sistemi più semplici per fare l’aggiornamento, per ora si deve caricare MySQL 8 direttamente dall’APT Repository di Oracle MySQL. Forse, quando MySQL 8 arriverà nell’APT ufficiale di Ubuntu, l’upgrade sarà più semplice.

I rischi di passare a MySQL 8

Oltre alle difficolta appena esposte per fare l’aggiornamento del database server a MySQL 8, vanno fatte alcune riflessioni:

a) Incompatibilità con MariaDB

Maria DB è nata nel 2009 da un fork di MySQL. Più si andrà avanti con lo sviluppo di MySQL, più sarà difficile per il team di sviluppo di MariaDB garantirne la compatibilità. Per ora non credo sia possibile passare da MySQL 8 a MariaDB.

Se la completa compatibilità tra i due database server si perdesse definitivamente, questo non dovrebbe essere un grosso problema. Sono certo che ci sarà sempre un modo per migrare da MySQL 8 a MariaDB o verso un altro database server open source. Magari inizialmente si potrà migrare su un altro database server solo con dei software a pagamento, ma poi usciranno anche quelli open source.

I siti WordPress sono troppo diffusi per farsi intrappolare da Oracle o da MariaDB. Quindi, ci sarà sempre un modo per cambiare il tipo di database server utilizzato da WordPress.

b) Incompatibilità con WordPress

  • La versione 8 di MySQL è stata rilasciata ufficialmente ad Aprile 2018. Quindi, teoricamente ci sarebbe il rischio di incompatibilità con i Plugin WordPress che usano direttamente le vecchie funzioni deprecate da MySQL 8.0. In pratica, per come è fatto WordPress e vista la diffusione di MySQL con WordPress, se si usano Plugin molto diffusi e sempre aggiornati, il rischio è minimo. Se dovesse accadere di trovare dei problemi, si deve avere pronto un backup di tutto il sistema da ripristinare. Dopo, a mente fredda si può decidere se rinunciare a MySQL o cambiare il Plugin.
  • Per evitare delle incompatibilità con altri software che utilizzano i database MySQL, ho installato MySQL 8 specificando di utilizzare come metodo standard di autenticazione il Legacy Authentication Method, che utilizza il plugin mysql_native_password. Forse, il nuovo metodo di autenticazione, con il nuovo plugin che fa il caching delle password sha2, non avrebbe dato problemi ai client e avrei avuto un leggero aumento ulteriore della sicurezza e delle velocità. Infatti, ho verificato che, quantomeno dalla versione PHP 7.2.8, in poi, non dovrebbero esserci problemi ad utilizzare PHP 7 con il nuovo plugin MySQL che fa il caching delle password sha2. Tuttavia, avevo e ho tuttora dei dubbi sulla sua compatibilità con WordPress. Ho quindi preferito non fare troppi cambiamenti e esperimenti contemporaneamente. Il metodo di autenticazione degli account si può cambiare successivamente per ogni singolo account, dopo che sarà sicura la compatibilità anche con WordPress.
  • Uno dei mie siti WordPress, il più vecchio, utilizza nel database la codifica dei caratteri utf-8 (utf8mb3) e MySQL 8.0 non ha avuto nessun problema. Per ora, non è necessario far passare un vecchio database che andava bene con utf-8 a utf8mb4.

Conclusioni

Chi ha dei siti WordPress può anche rimandare temporalmente il passaggio a MySQL 8. Per ora, se non si hanno esigenze particolari, non ci sono grandi benefici, ma tra non molto ci saranno sicuramente grossi vantaggi nel passare a MySQL 8.

Tanti piccoli miglioramenti possono portare a grandi risultati.


© Riproduzione riservata.
Gli argomenti dei blog e i tasti di condivisione li trovi a inizio pagina.

Grazie
Enrico Filippucci
Enrico Filippucci. Twitter logo in

2 commenti su “I vantaggi di passare a MySQL 8 per i siti WordPress

  1. Ciao Enrico, a parte il cloud, conosci qualche hosting che offre http2 e mysql 8.x?
    In caso non ne conoscessi, quale cloud hosting consigli per una piccola società?

    Grazie Raul

    • Ciao Raul,
      non conosco grandi società di web hosting che offrono già MySQL 8. Invece, http2 lo offrono quasi tutti. Io vi consiglio di fare da soli con il cloud hosting, come ho fatto io.

      Già entro ottobre ci sarà il supporto al nuovo standard TLS 1.3 su tutti i browser più usati. Con TLS 1.3, l’http2 sarà finalmente davvero più veloce. Quindi, ad esempio, se hai un tuo cloud hosting puoi attivare subito il TLS 1.3 con Nginx, oppure dalla prossima versione di Apache2. Se andate su un web hosting tradizionale credo dovrete aspettare molto per avere il TLS 1.3 e forse anche per avere MySQL 8.

      Eventualmente, se preferite non gestire l’hosting da soli, potrei offrirvi un could hosting gestito da me.

Lascia un commento