我有一个包含 MySQL 数据库文件的 zip 存档。解压缩存档内容后,我使用 libmysqld 成功读取了数据库。
我的问题是——libmysqld 是否理解内存数据库的概念?我本可以将我的 zip 存档解压缩到某个内存结构中,然后让 libmysqld 使用它,而不是磁盘上的文件。可能吗?
我有一个包含 MySQL 数据库文件的 zip 存档。解压缩存档内容后,我使用 libmysqld 成功读取了数据库。
我的问题是——libmysqld 是否理解内存数据库的概念?我本可以将我的 zip 存档解压缩到某个内存结构中,然后让 libmysqld 使用它,而不是磁盘上的文件。可能吗?
是的,您可以设置存储引擎 = 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 是不区分大小写的 wrt 操作/请求。)
操作说明在这里:http ://www.plus2net.com/sql_tutorial/sql_copy_table.php 。
我懒得编辑我的 C 语言代码并发布它,但它非常简单。只需花 15 或 20 分钟阅读文档,您就会立即得到它。