Можно ли загружать базу данных в ОЗУ?
Я хочу загрузить базу MYSQL в ОЗУ своего компьютера, есть ли способ сделать это? Я запускаю эту базу данных под Linux. Кроме того, если это возможно, есть хороший способ сделать резервные копии, потому что, если компьютер неожиданно отключится, я потеряю все свои данные.
Ответы
Ответ 1
Если буферный пул достаточно велик, ваши данные - эффективно - база данных в памяти с резервной копией диска. Не обманывайте себя с помощью баз данных RAM, просто сделайте размер пула буферов настолько большим, насколько сможете это сделать.
Прочтите это:
http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size
Ответ 2
Да, вы можете использовать механизм MEMORY. Что касается резервного копирования, это ваш вызов. Вы никогда не говорили, например. как часто вы хотите хранить на диске. Но вы можете использовать традиционную репликацию MySQL или свое собственное решение.
Ответ 3
например, в Linux, вы можете смонтировать свою базу данных в tmpfs
Ответ 4
Если вы используете таблицы innodb, я рекомендую настроить размер пула буферов, например, предложенный выше S.Lott. Сделайте 110% или около того вашего размера базы данных, если у вас есть баран.
Если ваша база данных > 50mb, вы также захотите посмотреть на увеличение 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 немного сложнее настроить. Вам нужно закрыть db вниз, перенести текущие файлы журнала в резервную папку и позволить mysql воссоздать их при перезапуске (т.е. После изменения значений в my.cnf). Google это, и вы найдете ответы.