MySQL è uno dei database relazionali open source più popolari al mondo Deve questa popolarità al suo ampio utilizzo su siti web di e-commerce, social media e applicazioni tra cui Drupal, Joomla, Magento e WordPress. È inoltre una parte essenziale dello diffusissimo stack di applicazioni web Linux-Apache-MySQL-PHP/Perl/Python (LAMP), che è alla base di un'ampia gamma di applicazioni, siti web e servizi popolari. È il secondo database più popolare al mondo, secondo la classifica di DB-Engines.
Scopri in che modo il database relazionale gestito di Google Cloud, Cloud SQL per MySQL, può aiutarti a ridurre i costi operativi e migliorare l'efficienza.
MySQL è un sistema di gestione di database relazionali open source. Come con altri database relazionali, MySQL archivia i dati in tabelle composte da righe e colonne. Gli utenti possono definire, manipolare, controllare ed eseguire query sui dati utilizzando il linguaggio SQL (Structured Query Language). Dato che MySQL è open source, include numerose funzionalità sviluppate in stretta collaborazione con gli utenti da oltre 25 anni.
MySQL è open source, il che significa che può essere utilizzato senza costi in base ai termini della GNU General Public License. Inoltre, chiunque può modificare il codice sorgente del software per proprio uso. Ciò ha portato al fork di MySQL con la creazione di altre varianti del database, come MariaDB e Percona Server for MySQL. MySQL è disponibile anche con altre licenze per uso commerciale.
MySQL appartiene a una categoria di database chiamata sistemi di gestione di database relazionali (RDBMS). Un database relazionale è una raccolta di informazioni che organizza i dati in relazioni predefinite in cui i dati vengono archiviati in una o più tabelle (o "relazioni") di colonne e righe, semplificando la visualizzazione e la comprensione di come le diverse strutture di dati sono correlate tra loro. Le relazioni sono una connessione logica tra le diverse tabelle, stabilite sulla base dell'interazione tra queste.
MySQL è stato creato come estensione del linguaggio di programmazione commerciale, SQL, e si basava sul modello relazionale descritto nel documento di Edgar F. Codd. L'azienda svedese MySQL AB, fondata da David Axmark, Allan Larsson e Michael Widenius, ha sviluppato e rilasciato MySQL nel 1995. Il nome "MySQL" è una combinazione del nome della figlia di Michael Wildenius "My" e di "SQL", che fa riferimento allo Structured Query Language. Sun Microsystems ha acquisito MySQL AB nel 2008. MySQL è attualmente di proprietà di Oracle Corporation dopo l'acquisizione di Sun Microsystems nel 2010.
MySQL è stato sviluppato originariamente nei linguaggi di programmazione C e C++. Nel corso degli anni ha goduto di grande popolarità per le sue numerose versioni, poiché era disponibile su molti sistemi operativi proprietari e open source. La versione più recente del database, MySQL 8.0, è stata rilasciata nel 2018.
Il progetto MySQL è stato soggetto a fork più volte nel corso degli anni a causa di vari motivi. Alcuni di questi fork non esistono più. Tra i progetti rimanenti dopo il fork, quelli più popolari sono MariaDB e Percona Server for MySQL. MariaDB è un fork creato dai fondatori originali di MySQL per assicurarsi che MySQL rimanesse open source dopo i problemi di commercializzazione emersi in seguito all'acquisizione da parte di Oracle. Percona Server for MySQL è un'altra distribuzione open source di MySQL che intende mantenere una stretta compatibilità con MySQL. Scopri di più sulle versioni di MySQL e sull'ecosistema completo di MySQL.
È possibile accedere a MySQL tramite una GUI (Graphic User Interface) o strumenti di interfaccia a riga di comando.
GUI (Graphical User Interface)
Le GUI offrono un ambiente integrato costituito da pulsanti e widget di interazione che rendono l'esecuzione di query e lo sviluppo di applicazioni un'esperienza visiva, al contrario di quanto accade con l'utilizzo di comandi basati su testo in un'interfaccia a riga di comando. Esistono molte GUI di MySQL sviluppate sia dal progetto open source MySQL sia da integratori di terze parti. Uno dei più popolari è MySQL Workbench, anch'esso open source e sviluppato da MySQL AB. Altre GUI molto note sono phpMyAdmin, uno strumento di amministrazione popolare per lo sviluppo di applicazioni web, e HeidiSQL, uno strumento di amministrazione open source utile per amministrare altri database oltre a MySQL.
Riga di comando
È possibile accedere a MySQL anche tramite strumenti a riga di comando. Questi strumenti, chiamati anche utilità MySQL, vengono forniti con la distribuzione MySQL e vengono richiamati con comandi di testo nella shell MySQL o in altri strumenti con interfaccia a riga di comando come Percona Toolkit.
Un utente può eseguire il deployment di MySQL manualmente sulla propria macchina fisica utilizzando il codice open source oppure scaricando una delle distribuzioni in pacchetto. Nella maggior parte dei casi, MySQL viene installato su una singola istanza o macchina e la scalabilità verticale è il metodo principale per migliorare le prestazioni. Tuttavia, MySQL può essere impostato in una configurazione replicata con un nodo primario e molti nodi secondari, che possono essere promossi a nodo primario in caso di errore dell'istanza.
Un altro modo sempre più diffuso di ospitare MySQL è tramite fornitori di servizi cloud. Esistono un paio di modi per eseguire il deployment di MySQL nell'ambiente di un fornitore di servizi cloud. Il primo è installare MySQL direttamente su una macchina virtuale e gestirla autonomamente. L'altro è attraverso l'uso di offerte gestite di fornitori di servizi cloud che rendono l'amministrazione di MySQL molto più semplice e si occupano di molti aspetti operativi della gestione di MySQL. Il servizio gestito di Google Cloud si chiama Cloud SQL. Cloud SQL per MySQL è un servizio di database completamente gestito che consente di configurare, mantenere, gestire e amministrare i database relazionali MySQL su Google Cloud, riducendo il lavoro manuale degli amministratori di database e aiutando le organizzazioni a innovare mediante l'offerta di servizi a valore aggiunto per sicurezza, alta disponibilità e osservabilità. Scopri come configurare un'istanza Cloud SQL di MySQL in questo articolo sulle best practice per la configurazione di un'istanza Cloud SQL per MySQL. La migrazione a Cloud SQL per MySQL da MySQL on-premise o da un altro database di un fornitore di servizi cloud è molto semplice e ci sono molti strumenti e opzioni a disposizione dell'utente.
Per comprendere i vantaggi e le differenze tra l'offerta completamente gestita di Cloud SQL per MySQL e MySQL con gestione autonoma, consulta l'articolo sulle opzioni di hosting di MySQL.
MySQL è veloce, affidabile, scalabile e facile da usare. MySQL può essere eseguito comodamente su computer o laptop insieme ad altre applicazioni, server web e così via. Richiede poca o nessuna attenzione. Se si dedica un'intera macchina a MySQL, è possibile regolare le impostazioni per sfruttare tutta la memoria, la potenza della CPU e la capacità di I/O disponibili. MySQL può anche fare lo scale up a cluster di macchine collegate in rete.
L'utilizzo di MySQL per gestire e archiviare i dati offre molti altri vantaggi, tra cui:
Alta disponibilità
L'alta disponibilità in MySQL si riferisce alla capacità del motore del database di funzionare per un tempo prolungato senza errori. L'alta disponibilità in MySQL può essere abbastanza complessa da configurare e dipende dai requisiti di disponibilità specifici di ciascun utente e dal modo in cui viene eseguito il deployment di MySQL. Per configurare l'alta disponibilità in MySQL, gli utenti devono preoccuparsi di aspetti come la replica dei dati, il rilevamento degli errori e i meccanismi di failover e failback, nonché il reindirizzamento del traffico del database all'istanza secondaria dopo un failover. Cloud SQL per MySQL rende l'alta disponibilità un processo semplice. Scopri di più sull'alta disponibilità per MySQL su Google Compute Engine o sull'esperienza ad alta disponibilità completamente gestita di Cloud SQL per MySQL.
Sicurezza
Le considerazioni sulla sicurezza di MySQL possono riguardare un'ampia gamma di fattori. Alcuni sono importanti in materia di protezione dei dati, ad esempio evitare che vengano danneggiati utilizzando meccanismi di ridondanza dei dati e processi di sicurezza generali come password e privilegi, controllo dell'accesso e sicurezza di rete. Scopri di più sulla sicurezza in Cloud SQL per MySQL, un'offerta MySQL completamente gestita da Google Cloud.
Backup e ripristino
MySQL supporta il backup e il recupero dei dati tramite vari meccanismi, tra cui strumenti di terze parti. Esistono vari metodi per eseguire il backup e il ripristino di MySQL, ad esempio l'utilità mysqldump, i backup incrementali con i log binari e la replica. Cloud SQL per MySQL offre funzionalità integrate di backup e ripristino che consentono i backup automatici o on demand.
Flessibilità
È facile aggiungere, aggiornare o eliminare tabelle e relazioni, e apportare altre modifiche ai dati ogni volta che ne hai bisogno, senza modificare la struttura complessiva del database e senza interferire con le applicazioni esistenti.
Facilità di utilizzo
È facile eseguire query complesse utilizzando il linguaggio SQL, che permette anche agli utenti meno esperti di interagire in modo intuitivo con il database.
L'ottimizzazione delle prestazioni è un aspetto fondamentale della gestione di qualsiasi database. MySQL semplifica lo sviluppo di applicazioni ad alte prestazioni offrendo molte funzionalità e opzioni di ottimizzazione. Per saperne di più su queste funzionalità, consulta questo articolo con suggerimenti per l'ottimizzazione delle prestazioni di MySQL. Anche quest'altro articolo sull'ottimizzazione delle query fornisce best practice specifiche per le prestazioni.
MySQL supporta le proprietà ACID (Atomicità, Coerenza, Isolamento, Durabilità) che garantiscono la validità dei dati indipendentemente da errori, guasti o altri potenziali incidenti.
Grazie alla sua versatilità, MySQL può essere utilizzato per molti casi d'uso diversi. Di seguito ne sono riportati alcuni.
MySQL è una parte essenziale di molte applicazioni web che vengono sviluppate oggi mediante lo stack LAMP open source. LAMP include Linux come sistema operativo, Apache come server web, MySQL come database e PHP, Python o Perl come linguaggio di programmazione. LAMP aiuta gli sviluppatori a creare applicazioni web dinamiche che richiedono il recupero di informazioni aggiornate da un database come MySQL. Queste possono includere account utente, dettagli degli utenti, nomi dei prodotti, record dei clienti, vendite e altro ancora. Utilizzando il linguaggio SQL, gli utenti possono accedere facilmente alle informazioni archiviate nel database e manipolarle. Per saperne di più, consulta gli articoli su LAMP e su come utilizzarlo per creare applicazioni web.
Al momento, molte applicazioni richiedono un database come MySQL per gestire rapidamente una grande quantità di transazioni di database generate da un numero elevato di utenti. I database OLTP come MySQL sono la base per molte transazioni web quotidiane, tra cui movimenti finanziari, prenotazioni di viaggi, operazioni su registri contabili e altro ancora. Per supportare i casi d'uso relativi all'elaborazione delle transazioni online, MySQL è conforme ai principi ACID, al supporto per XML e JSON, alle stored procedure, al clustering e al partizionamento. Offre inoltre la possibilità di scegliere tra vari motori di archiviazione per avere la flessibilità necessaria al fine di integrare i dati di un'ampia gamma di tipi di tabelle.
MySQL è un database molto diffuso per le applicazioni di e-commerce che richiedono gestione degli utenti, informazioni sui consumatori, dati finanziari e analisi delle tendenze per prevenire le attività fraudolente. Un database relazionale come MySQL può essere utilizzato per organizzare le informazioni in tabelle (prodotti, clienti, ordini) e consente anche di aggiungere ulteriori tabelle in base alle necessità. Alcune delle più grandi organizzazioni al mondo come Airbnb, Uber, Netflix, Booking.com, eBay e Spotify utilizzano MySQL per potenziare le loro applicazioni di e-commerce. Inoltre, MySQL può essere implementato in un deployment ibrido per supportare completamente i casi d'uso di e-commerce. MySQL può essere utilizzato come database relazionale per dati strutturati e come database non relazionale per dati non strutturati come dettagli del prodotto o informazioni di marketing.
Le applicazioni SaaS in genere sono sempre attive, perciò richiedono tempi di inattività minimi, sicurezza e scalabilità a seconda delle esigenze. MySQL è emerso come un'opzione di database molto diffusa per la creazione di applicazioni SaaS grazie alla facilità di deployment, gestione e scalabilità. Poiché è open source, gli sviluppatori possono iniziare a utilizzarlo rapidamente senza dover pagare tariffe per le licenze del software proprietario. La community globale di MySQL è molto attiva e ha contribuito allo sviluppo di plug-in che forniscono funzionalità aggiuntive.
MySQL è una scelta di database popolare per i sistemi di gestione dei contenuti (CMS), ad esempio WordPress e Drupal. I CMS archiviano post, pagine, immagini, commenti, categorie, tag, campi personalizzati, utenti e altre impostazioni nel database MySQL. Poiché i CMS hanno spesso migliaia o addirittura milioni di account ogni giorno, MySQL è in grado di gestire tabelle di grandi dimensioni e più query contemporaneamente. Man mano che il pubblico cresce, MySQL può scalare verticalmente o orizzontalmente per soddisfare le esigenze aziendali.
Un aspetto importante delle applicazioni per i social media è la necessità di connessioni tra vari datastore, come utenti, gruppi e commenti. In questo tipo di caso d'uso, i database relazionali sono la scelta preferita per le applicazioni di social media e MySQL è quello più diffuso. Alcuni esempi degni di nota sono Twitter, Pinterest e LinkedIn.
Scopri come Cloud SQL per MySQL ti aiuta a innovare. Visualizza la documentazione
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.