• Passa alla navigazione primaria
  • Passa al contenuto principale
  • Passa alla barra laterale primaria
  • Passa al piè di pagina

Il blog di HostingVirtuale

Hosting e Registrazione Domini

  • Facebook
  • Instagram
  • LinkedIn
  • Pinterest
  • RSS
  • Twitter
  • Youtube
  • Home
  • CMS
  • Social Media
  • Web Hosting
  • Web Design
  • Web Marketing
  • HostingVirtuale
    • Web Hosting
    • Cloud server
    • Server dedicati
    • Virtual Private Server
    • Sicurezza
Ti trovi qui: Home / Web Hosting / Ottimizzare MySQL per migliorare le prestazioni del database

Ottimizzare MySQL per migliorare le prestazioni del database

Pubblicato il 19 Febbraio 2015 da Salvatore Capolupo Lascia un commento Contrassegnato con: mysql, tutorial

Ottimizzare MySQL per migliorare le prestazioni del database

MySQL è un database open source utilizzato nella maggior parte dei siti web dinamici e incluso in tutti i nostri piani di hosting condiviso. Le sue prestazioni sono regolamentate da un sistema di accesso molto avanzato, ulteriormente ottimizzabile e, se lo si desidera, da “tarare”.

Prima di procedere alla definizione delle tecniche per migliorare le prestazioni di accesso ai dati e ottimizzare MySQL, è bene fare una serie di premesse che aiuteranno a capire al meglio l’argomento in questione.

Cosa cambia tra i vari storage-engine di MySQL?

MySQL offre l’accesso ai dati in lettura / scrittura mediante appositi storage engine, ovvero librerie che offrono un’interfaccia per la gestione delle informazioni memorizzate: lettura, scrittura, buffering e così via.

I due più diffusi sono MyISAM ed InnoDB, due motori di memorizzazione differenti per una serie di aspetti, tra cui il fatto che solo il secondo supporta le transazioni, ovvero operazioni consecutive sul database che avvengono sotto condizioni di atomicità, consistenza, isolamento e durabilità (ACID) e con la possibilità – informalmente parlando – di effettuare operazioni di ripristino della stato iniziale in caso di errori.

Confronto storage engine di MySQL

In termini prestazionali, MyISAM è considerato più veloce di InnoDB, per quanto tale affermazione dipenda molto dal tipo di applicazione, dal numero di accessi al database, dalla dimensione delle tabelle e così via.

MyISAM è più performante se abbiamo piccole tabelle in sola lettura (secondo un test di performance segnalato su StackOverflow) mentre in altri casi, è InnoDB che mostra un comportamento più veloce, specie in presenza di istruzioni di lock delle tabelle.

Nel caso il cui il database venga utilizzato per un CMS come Drupal, Joomla o WordPress, le differenze possono essere davvero minime o non esistere affatto.

Come ottimizzare un database

Come ottimizzare un database

In genere un’operazione di ottimizzazione di una o più tabelle del database può avvenire con il seguente comando:

OPTIMIZE TABLE tabella1 [, tabella2, …]

Si ricorda come questo genere di operazione sia legata esclusivamente alla struttura del database e non, ad esempio, alle modalità di accesso ai dati (l’ottimizzazione delle query è un discorso differente, per intenderci).

Come ottimizzare un database MyISAM

Esistono varie ottimizzazioni specifiche a seconda degli engine utilizzati: MyISAM è stato quello di default fino alla versione 5.5, è in genere performante e richiede poche risorse (RAM, hard disk).

Per compattare il numero di righe frammentate ed evitare sprechi di spazio, problemi che solitamente derivano dalla cancellazione o dall’aggiornamento (ovvero durante un’utilizzo costante delle risorse nel tempo), è possibile sfruttare il comando myisamchk via shell MySQL, quindi dopo aver fatto login ad esempio via SSH, entrando nel client e digitando:

myisamchk -r tabella_x

Come ottimizzare un database InnoDB

InnoDB supporta pienamente le proprietà ACID viste in precedenza, possiede un supporto agli errori molto avanzato che permette tra l’altro, il ripristino dello stato dei dati in caso di necessità. Questo engine viene solitamente utilizzato per applicazioni molto avanzate, o comunque in ambiti che diano priorità alla concorrenza ed all’affidabilità dell’estrazione di informazioni.

L’ottimizzazione dei dati in questo caso, è decisamente più complessa e per questo motivo si consiglia di prendere in considerazione i seguenti suggerimenti:

  • valutare la possibilità di risparmiare spazio sfruttando l’AUTO_INCREMENT della chiave in corrispondenza della colonna PRIMARY KEY;
  • utilizzare il tipo VARCHAR anzichè CHAR, in modo da risparmiare byte nel buffer pool e ridurre il numero di operazioni in I/O;
  • valutare la possibilità di sfruttare il formato COMPRESSED delle colonne anche qui per ottimizzare I/O e buffering;

Altre operazioni riguardano le transazioni e possono essere analizzate sulla documentazione ufficiale.

Come cambiare l’engine di MySQL

Se il server supporta entrambi i tipi, possiamo – se necessario – switchare da un tipo di engine all’altro con un comando di questo tipo (ad esempio sulla tabella_x):

ALTER TABLE tabella_x ENGINE=INNODB;

ALTER TABLE tabella_x ENGINE=MYISAM;

WordPress utilizza di default MyISAM che è anche l’engine più diffuso disponibile nei pacchetti hosting commerciali o perlomeno con una versione di MySQL inferiore alla 5.5, per quanto non sia previsto uno standard preciso nelle proprie specifiche.

Questo motore va benissimo per siti con una soglia di traffico non elevata, mentre InnoDB si usa solitamente per applicazioni web di livello più alto.

Alla luce di queste considerazioni un database con supporto MyISAM, per definizione è spesso “immune” alle ottimizzazioni che verranno eseguite su di esso mentre InnoDB è più moderno e più performante ma anche più difficile da manipolare e configurare.

Se vuoi fare dei test e provare ad ottimizzare MySQL, prova i  nostri servizi hosting! In regalo per te un codice sconto che ti consente di acquistare PERSONAL a soli €15,00.

Articoli correlati:

Come fare il backup del database MySQL nel cloudCome fare il backup del database MySQL nel cloud Come migrare il database MySQL mediante cloudCome migrare il database MySQL mediante cloud Effettuare un test di performance su MySQLEffettuare un test di performance su MySQL

Interazioni del lettore

Lascia un commento Annulla risposta

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

Barra laterale primaria

Come diventare Web Designer Professionista

Crea il tuo sito web gratis

Scopri il nostro hosting gratuito FREE che comprende: dominio, 100 MB di spazio web, posta elettronica, database MySQL, certificato SSL e il pannello di controllo in italiano HVCP che consente anche l'installazione di WordPress con un click.

Scopri di più!

Web Designer alle prime armi?

Scarica l’Ebook e scopri le migliori tecniche e gli strumenti del mestiere usati dai Web Designer esperti.
Ti sveleremo:
- L’importanza del percorso formativo;
- I libri indispensabili;
- Gli strumenti migliori;
- Come trovare nuovi clienti;
- Come creare un preventivo efficace;
- Come creare un portfolio online;
- Come diventare pro con un mentore;
- Il pannello di controllo all-in-one.

Scarica l'ebook!
  • Le nuove funzioni di HVCP: crea il tuo sito web gratis
  • Le nuove funzioni di HVCP: Certificati SSL personali e per sottodomini
  • Le nuove funzioni di HVCP: IMAPSync, direttive php.ini, error log

Articoli recenti

  • Defacement di un sito web: cos’è e come proteggersi 31 Marzo 2023
  • Come usare Chat GPT per il tuo blog 28 Marzo 2023
  • I trend di web design per il 2023 21 Marzo 2023
  • Chat GPT: cos’è e a cosa serve 14 Marzo 2023
  • I plugin WordPress per la sicurezza del tuo sito web 7 Marzo 2023

Il tuo sito web è al sicuro?

Attiva il Cloud Backup con il 20% di sconto! Grazie al semplice pannello di controllo in italiano puoi salvare nel cloud storage di Amazon tutti i dati del sito web e del database MySQL.

Scopri di più!

Footer

HostingVirtuale

  • Registrazione domini
  • Web Hosting
  • Posta Elettronica Certificata
  • Cloud server
  • Server dedicati
  • Virtual Private Server
  • Hosting reseller
  • Sicurezza siti web
  • Cloud Backup

Tag Cloud

app backup business cloud content marketing domini ecommerce email email marketing facebook freelance google grafica hosting condiviso hosting gratuito hostinterview inbound marketing infografica instagram intelligenza artificiale joomla malware mobile news pannello clienti pec personal branding pinterest plugin prestashop project management sconti seo server sicurezza smart working storytelling telegram tools tutorial twitter video marketing vps wordpress youtube

Articoli recenti

  • Defacement di un sito web: cos’è e come proteggersi
  • Come usare Chat GPT per il tuo blog
  • I trend di web design per il 2023
  • Chat GPT: cos’è e a cosa serve
  • I plugin WordPress per la sicurezza del tuo sito web

© 2023 All Rights Reserved Hosting Virtuale srl Chieti Pescara Roma Partita IVA IT02586030690