È possibile avere entrambe le tabelle MyISAM e InnoDB nello stesso database. Quello che troverete, però, quando si hanno tavoli molto grandi, MyISAM potrebbe causare problemi di blocco del tavolo. Ciò che questo fa alla fine è, blocca l'intera tabella per una singola transazione, il che è molto brutto se hai molti utenti che usano il tuo sito web. Ad esempio, se un utente cerca qualcosa sul tuo sito e la query richiede alcuni minuti per essere completata, nessun altro utente potrebbe utilizzare il tuo sito durante quel periodo perché l'intera tabella è bloccata.
InnoDB d'altra parte utilizza il blocco a livello di riga, ovvero quella riga è l'unica riga bloccata dalla tabella durante una transazione. InnoDB può essere più lento nelle ricerche perché non offre la ricerca full-text come MyISAM, ma questo non è un grosso problema quando lo si confronta con il blocco a livello di tabella di MyISAM. Se si utilizza InnoDB, come molti siti di grandi dimensioni, è possibile utilizzare un motore di ricerca lato server come Sphinx per ricerche di testo completo. O potresti anche usare una tabella MyISAM per fare la ricerca come f00
suggerita. L'ho consigliato personalmente a InnoDB principalmente a causa della funzione di blocco a livello di riga, ma anche perché è possibile implementare la ricerca di testo completo in molti altri modi.
Fondamentalmente, se si dispone di un'applicazione di bacheca con un sacco di selezioni, inserti e aggiornamenti, InnoDB è probabilmente la scelta generalmente appropriata. Ma se non stai costruendo qualcosa di simile (o qualsiasi altra cosa con utenti registrati) e lavori principalmente con contenuti statici (o più letture che scritture), allora potresti usare MyISAM.
fonte
2011-01-02 05:11:02
ciò che è un indice chiave primaria cluster? http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html Perché gli indici delle chiavi primarie in cluster sono migliori degli indici btree normali? http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 –