是否可以指示libmysqld(嵌入式MySql数据库引擎)使用内存数据库?

时间:2012-01-01 09:18:25

标签: mysql in-memory-database

我有一个包含MySQL数据库文件的zip存档。在解压缩归档内容后,我使用libmysqld成功读取了数据库。

我的问题是这个 - libmysqld是否了解内存数据库的概念?我可以将我的zip存档解压缩到一些内存结构中,然后让libmysqld使用它,而不是磁盘上的文件。有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以设置一个存储引擎= RAM的表。事实上,据我所知,MySQL通常会选择RAM:http://dev.mysql.com/doc/refman/5.1/en/memory-storage-engine.html。但是,根据我的经验,你必须告诉mySQL将磁盘驻留表复制到RAM表。也就是说,我从来没有能够做你想做的事情:将数据库从磁盘引入RAM,然后将MySQL指向它并期望MySQL理解它:例如,我不相信MySQL可以理解IDX文件曾经在磁盘上,现在在RAM中。

编辑:您可以在一个MySQL操作中创建磁盘驻留表并将其复制到RAM表中。操作是:

CREATE TABLE Ramtable SELECT * FROM Disktable(不必担心大写:MySQL与操作/请求无关。)

操作说明如下:http://www.plus2net.com/sql_tutorial/sql_copy_table.php

我懒得编辑我的C语言代码并发布它,但它非常简单。只需花费15或20分钟阅读文档即可立即获得。