Origini e crescita
MySQL nasce nel 1995 dal lavoro di Michael “Monty” Widenius e David Axmark presso la svedese MySQL AB. L’obiettivo iniziale è un database relazionale leggero, veloce e facile da integrare nelle applicazioni web. In pochi anni il progetto passa da strumento di nicchia a componente fondamentale dello stack LAMP (Linux, Apache, MySQL, PHP/Perl/Python), la combinazione Open Source che alimenta una quota crescente dei siti web mondiali.
La versione 3.23, rilasciata nel 2001, introduce due funzionalità che cambiano il profilo del progetto: il supporto alle tabelle InnoDB e la replica nativa.
InnoDB e le transazioni ACID
Il motore di storage InnoDB, sviluppato dalla finlandese Innobase Oy di Heikki Tuuri, porta in MySQL il supporto alle transazioni ACID (Atomicity, Consistency, Isolation, Durability), il row-level locking e le foreign key con integrità referenziale. Prima di InnoDB, MySQL disponeva solo di MyISAM, veloce in lettura ma privo di transazioni e con locking a livello di tabella.
Con la versione 4.0, attualmente in fase di rilascio, arrivano il supporto nativo alla full-text search su tabelle MyISAM, le query cache per accelerare le letture ripetute e miglioramenti significativi al sistema di replica.
Architettura a storage engine
La caratteristica architetturale distintiva di MySQL è il design a pluggable storage engine. Il server separa il layer SQL — parsing, ottimizzazione, gestione delle connessioni — dal layer di storage fisico dei dati. Ogni tabella può utilizzare un engine diverso: MyISAM per le letture intensive, InnoDB per i carichi transazionali, HEAP (oggi MEMORY) per le tabelle temporanee in RAM.
Questa separazione consente di ottimizzare il comportamento del database tabella per tabella, un approccio flessibile che si adatta ai requisiti eterogenei delle applicazioni web.
Il database dello stack LAMP
L’adozione di MySQL nel contesto web è guidata da fattori convergenti: la licenza GPL che ne consente l’uso gratuito, la semplicità di installazione su Linux, l’integrazione nativa con PHP tramite le funzioni mysql_connect() e affini, e prestazioni elevate nei carichi di lettura tipici dei siti dinamici.
Provider di hosting condiviso includono MySQL per default. Framework e applicazioni web — da phpBB a phpMyAdmin, da Slashcode a sistemi di e-commerce — assumono MySQL come database di riferimento. La combinazione con Apache e PHP su Linux crea un ecosistema coerente, interamente Open Source, che abbassa drasticamente la barriera d’ingresso per la pubblicazione web.
Il risultato è un database che, pur con le limitazioni rispetto a soluzioni come PostgreSQL o Oracle sul fronte delle funzionalità SQL avanzate, domina il segmento web per velocità, semplicità e ubiquità.
