InnoDB

PensieriParole si è appoggiato fino ad ora, e si sta appoggiando, al tipo di tabella standard di MySQL dalla versione 3: MyISAM. Questo tipo di tabella è veloce, ma non da molte sicurezze per la gestione concorrente dei dati. In particolare si sente la mancanza di alcune cose che un software complicato come quello che gestisce il nostro sito necessita: il supporto completo delle proprietà ACIDe. E qui arriva il colpo: MyISAM non supporta le transazioni, uno strumento fondamentale quando si ha a che fare con modifiche contemporanee alla base di dati come in PP.

Allora uno si guarda in giro e vede di InnoDB, incluso in MySQL che permette dalla versione 4 di supportare le transazioni. WOW! Poi legge da qualche altra parte che le prestazioni degradano e le tabelle vengono a pesare 5 volte di più… mmmhhh… bisogna pensarci due volte ad una migrazione del genere. Poi si continua a leggere e si viene a scoprire che in MySQL 5 InnoDB è il tipo di tabella predefinito, e si pensa “ma bisogna essere stupidi per sostituire una cosa più veloce con una più lenta”. E lo slogan del “più veloce server database open source” continua a campeggiare in home page di mysql.com. Allora i conti non tornano.

Continuo a cercare e scopro che InnoDB esegue locking a livello di riga invece che a livello di tabella per gli aggiornamenti. Sarebbe a dire che se io modifico un campo in una riga, MyISAM fa attendere tutte le altre transazioni che stanno per scrivere sulla stessa tabella, InnoDB solo quelle che vogliono scrivere la stessa riga. Il livello migliore sarebbe un locking al singolo campo, ma non penso sia possibile con nessun DBMS in commercio 😀 . Questo implica un aumento delle prestazioni immediato! Basti pensare a PensieriParole: per ogni due utenti che votano nello stesso istante due frasi di verse, con MyISAM il secondo deve attendere che il primo abbia finito, con InnoDB non c’è attesa! Quindi quella che prima sembrava una mossa azzardata comincia a prendere senso nella mia testa.

Continuo a leggere e mi imbatto in una cosa ancora più interessante: InnoDB è stata acquistata due mesi fa da Oracle. Beh! Una delle maggiori aziende mondiali nel campo dei database che acquista un’azienducola finlandese? Vorrà pur dire qualcosa!

Morale: mai fidarsi delle cose che leggi di primo acchito in rete

Seconda morale: a breve convertirò PensieriParole per usare InnoDB 😛

Annunci

4 Responses to InnoDB

  1. Manfry ha detto:

    Bene…. PensieriParole è in continuo cambiamento!!!!
    Io non ci capisco niente di DB…. ma se lo dici te che InnoDB è migliore mi fido!!!!!
    Buon lavoro allora!!!!! 🙂

  2. Stefy ha detto:

    Ma grazie!! Giusto questo volevo sapere, prima di passare a InnoDB. E ora che sono approdata qui, ti linko nel mio blog, tiè!! ^________^

  3. iBobo ha detto:

    Bene eheh sono contento che sia utile a qualcuno. Ora ti metto nel blogroll.
    Ciaooo

  4. Silvio ha detto:

    Molto utile, grazie 🙂

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: