2009-06-16 13 views
15

Voglio caricare un database MySQL nella RAM del mio computer, c'è un modo per farlo? Sto facendo funzionare questo database sotto Linux. Inoltre, se questo è possibile, c'è un buon modo per fare i backup, perché se il computer viene spento in modo imprevisto, perderei tutti i miei dati.È possibile caricare un database nella RAM?

+0

Come eseguire questa operazione in un sistema Windows? –

risposta

5

assolutamente, per esempio sotto Linux è possibile montare il database in un tmpfs

+0

Questa soluzione potrebbe essere valida se si è in grado di eseguire istantanee regolari per il backup del database. Altrimenti in caso di crash il DB è perso come al riavvio, tutto in un tmpfs andrà perso – jitter

+1

Questo funziona benissimo per eseguire test! :) – mkrmr

10

Sì, è possibile utilizzare il MEMORY engine. Per quanto riguarda i backup, è la tua chiamata. Non hai mai detto, ad es. quanto spesso si desidera archiviare su disco. Ma puoi usare il tradizionale MySQL replication o la tua soluzione.

+0

Ma quando si spegne Mysqlserver tutte le righe memorizzate nelle tabelle MEMORY vengono perse – jitter

+1

Sì, jitter, è vero. È la chiamata di Morke come gestirlo. –

4

Se stai usando le tabelle InnoDB poi mi consiglia di regolare la dimensione del pool di buffer come S. Lott suggerito sopra. Rendilo 110% circa delle dimensioni del tuo database se hai la RAM.

Se il database è> 50 mb, ti consigliamo di aumentare anche il file innodb_log_file_size. Vedere http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_log_file_size Forse intorno al 25-50% della dimensione del pool di buffer, ma 1 gb max.

Il file innodb_log_file_size è un po 'complicato da regolare. Devi chiudere il db down, spostare i file di log correnti in una posizione di backup e lasciare a mysql di ricrearli quando viene riavviato (ad esempio dopo aver modificato i valori in my.cnf). Google e troverai alcune risposte.

Problemi correlati