Можно ли поручить libmysqld (встроенный движок MySql DB) работать с базой данных в памяти? - PullRequest
1 голос
/ 01 января 2012

У меня есть zip-архив с файлами базы данных MySQL. Я успешно прочитал базу данных с помощью libmysqld после распаковки содержимого архива.

У меня такой вопрос - понимает ли libmysqld понятие базы данных в памяти? Я мог бы распаковать мой zip-архив в некоторую структуру памяти, а затем использовать libmysqld вместо файлов на диске. Возможно ли это?

1 Ответ

1 голос
/ 01 января 2012

Да, вы можете настроить таблицу с механизмом хранения = RAM.На самом деле, насколько я понимаю, MySQL обычно выбирает оперативную память, если может: http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine.html.Но, по моему опыту, вы должны сказать mySQL скопировать резидентную таблицу в таблицу RAM.То есть я никогда не был в состоянии сделать то, что вы могли бы: вывести базу данных в оперативную память с диска, а затем указать MySQL на нее и ожидать, что MySQL это поймет: например, я не верю, что MySQL может взломатьФайл IDX, который раньше находился на диске и теперь находится в ОЗУ.

РЕДАКТИРОВАТЬ: Вы можете создать и скопировать резидентную таблицу в таблицу ОЗУ за одну операцию MySQL.Операция:

CREATE TABLE Ramtable SELECT * FROM Disktable (Не беспокойтесь об использовании заглавных букв: MySQL не зависит от регистра операций / запросов.)

Описание операции:здесь: http://www.plus2net.com/sql_tutorial/sql_copy_table.php.

Мне лень редактировать мой код на C и публиковать его, но это очень просто.Просто потратьте 15 или 20 минут на чтение документов, и вы сразу же получите его.

...