将 MySQL 数据库装入内存

1 投票
3 回答
1210 浏览
提问于 2025-04-16 06:20

我正在使用Redis数据库来存储导航信息。这些数据需要持久保存,并且要能快速获取。我这个数据集的大小不超过200MB。

在为Redis数据库编写管理模块时,我遇到了问题,我真的很怀念SQL数据库的结构和Django风格的管理模块的强大功能。

现在我在考虑使用MySQL。我的需求是,我想要一个持久化的数据库,但希望数据能像Redis那样加载到内存中,这样我就可以更快地执行SQL查询。

我想知道是否可以在持久化模式下使用MySQL,并指示MySQL在查询时使用内存?有没有适合的MySQL数据库,让我不用太担心数据的一致性,因为我们的写入操作非常少。

3 个回答

0

我用HSQLDB做了这个(链接:http://hsqldb.org/

它缺少一些基本的SQL功能,比如IN语句,但大部分功能还是能用的。

0

我觉得你可以有一个持久化的表格,每次服务器启动时,把所有数据复制到一个内存引擎的表格里。然后在这个内存数据库上设置触发器,当有插入、更新和删除操作时,自动把这些变动写回到持久化的表格里,这样用户就看不到这些操作了。不过如果我说错了,请纠正我,这只是我会首先尝试的方法。

1

我会创建一个只读的从数据库来连接你的mysql数据库,并把它的数据库引擎设置为内存模式。这样的话,如果出现故障,你需要重新初始化这个只读数据库,不过这个过程可以很简单地用脚本来完成。

这样一来,你就可以在普通的mysql数据库中保留数据的持久性,同时在只读的内存表中享受更快的读取速度。

撰写回答