14 febbraio 2006

Cluster MySQL

Dalla versione 5 di mysql è presente la funzionalità di clustering, che a detta della pagina del prodotto prometterebbe velocità, stabilità, ecc.
Dopo gli entusiasmi iniziali dati dalla lettura del capitolo del manuale che parla di cluster mysql, mi sono imbattuto verso la fine nelle "Known limitations"; infatti il server mysql in realtà poggia le proprie capacità di clustering sul motore del database, ovvero ciò che immagazzina effettivamente i dati, separato dal server che li elabora. Per fare un paragone, siamo sempre nel caso della differenza tra le tabelle myisam e innodb: se le prime possono avere indici fulltext, le seconde no, ma hanno le transazioni.
Per il cluster c'è un altro motore di database chiamato NDB, che ha caratteristiche sue particolari e deve essere specificato in fase di creazione delle tabelle; le tabelle che andrete quindi a creare nel cluster non saranno né myisam né innodb.

  • Gli indici fulltext non sono supportati, come i tipi di dati geografici

  • Il livello di isolamento è read committed (c'è da capire come si comporti il database in un caso reale con gli accessi contemporanei - le prove fatte in passato non erano molto confortanti)

  • Tutte le righe delle tabelle sono di lunghezza fissa (!)

  • La lunghezza massima di ogni riga è di 8 KB (!)

  • Nessun supporto per foreign key


Come al solito ci si trova davanti ad un prodotto innovativo, ma con pesanti limitazioni, che possono anche annullare i vantaggi. Tipico alla mysql.
Spero di potere presto fare qualche prova.

Nessun commento: