2009-06-16 3 views
15

Je veux charger une base de données MYSQL dans la RAM de mon ordinateur, y at-il un moyen de le faire? Je cours cette base de données sous Linux. En outre, si cela est possible, existe-t-il un bon moyen de faire des sauvegardes, car si l'ordinateur est arrêté de manière inattendue, je perdrais toutes mes données.Est-il possible de charger une base de données dans la RAM?

+0

Comment faire cela dans un système Windows? –

Répondre

5

absolument, par exemple sous linux, vous pouvez monter votre base de données dans un tmpfs

+0

Cela pourrait être une solution viable si vous êtes capable de faire des instantanés réguliers pour sauvegarder la base de données. Sinon en cas de crash, la DB est perdue au redémarrage, tout ce qui est dans un tmpfs sera perdu. – jitter

+1

Cela fonctionne très bien pour les tests en cours! :) – mkrmr

10

Oui, vous pouvez utiliser le MEMORY engine. En ce qui concerne les sauvegardes, c'est votre appel. Vous n'avez jamais dit, par exemple. combien de fois vous voulez stocker sur le disque. Mais vous pouvez utiliser le MySQL replication traditionnel ou votre propre solution.

+0

Mais lorsque vous fermez le Mysqlserver toutes les lignes stockées dans les tables MEMORY sont perdues – jitter

+1

Oui, jitter, c'est vrai. C'est l'appel de Morke comment gérer cela. –

4

Si vous utilisez des tables InnoDB alors je recommande de régler la taille du pool tampon comme suggéré ci-dessus S. Lott. Faites-en 110% ou plus de la taille de votre base de données si vous avez le RAM.

Si votre base de données est> 50mb, vous pouvez également augmenter le nombre de fichiers innodb_log_file_size. Voir http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_log_file_size Peut-être à environ 25 - 50% de la taille de votre pool de mémoire tampon, mais 1gb max. Innodb_log_file_size est un peu difficile à ajuster. Vous devez fermer la base de données, déplacer les fichiers journaux actuels dans un emplacement de sauvegarde et laisser mysql les recréer au redémarrage (c'est-à-dire après avoir modifié les valeurs dans my.cnf). Google et vous trouverez quelques réponses.

Questions connexes