Можно ли загрузить базу данных в оперативную память? - PullRequest
15 голосов
/ 16 июня 2009

Я хочу загрузить MYSQL-базу в оперативную память моего компьютера, есть ли способ сделать это? Я использую эту базу данных под Linux. Кроме того, если это возможно, есть ли хороший способ сделать резервные копии, потому что, если компьютер неожиданно выключится, я потеряю все свои данные.

Ответы [ 4 ]

19 голосов
/ 16 июня 2009

Если ваш буферный пул достаточно большой, ваши данные - фактически - база данных в памяти с резервной копией диска. Не дурачитесь с базами данных ОЗУ, просто сделайте размер пула буферов настолько большим, насколько сможете.

Читать это:

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size

10 голосов
/ 16 июня 2009

Да, вы можете использовать MEMORY engine . Что касается резервного копирования, это ваш звонок. Вы никогда не говорили, например как часто вы хотите сохранить на диск. Но вы можете использовать традиционную репликацию MySQL или собственное решение.

5 голосов
/ 16 июня 2009

абсолютно, например, под Linux вы можете смонтировать вашу базу данных в tmpfs

4 голосов
/ 16 июня 2009

Если вы используете таблицы innodb, я рекомендую настроить размер пула буферов, как описано выше в S.Lott. Сделайте это на 110% или более от размера вашей базы данных, если у вас есть оперативная память.

Если ваша база данных> 50 МБ, вы также захотите увеличить innodb_log_file_size. См. http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_log_file_size Возможно, примерно до 25 - 50% размера вашего буферного пула, но не более 1 ГБ.

Innodb_log_file_size немного сложно настроить. Вам необходимо закрыть базу данных, переместить текущие файлы журналов в папку резервной копии и позволить mysql воссоздать их при перезапуске (то есть после того, как вы изменили значения в my.cnf). Google, и вы найдете ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...