Python中的内存数据库

38 投票
6 回答
54879 浏览
提问于 2025-04-16 00:00

我正在用Python对一个大数据库进行查询,想从中获取一些统计数据。我希望这些统计数据能保存在内存中,这样其他程序就可以直接使用,而不需要再去数据库里查。

我在考虑如何组织这些数据,尝试了一些复杂的嵌套字典后,我意识到用SQL表格来表示会比较好。不过,我不想把数据存回到持久化的数据库里。有没有什么在内存中运行的SQL数据库,可以用SQL语法来查询数据的?

6 个回答

2

虽然我来得很晚,但我觉得pyfilesystem2(我和它没有任何关系)似乎非常合适:

https://pyfilesystem2.readthedocs.io

pip install fs
from fs import open_fs
mem_fs = open_fs(u'mem://')
...
9

这可能听起来不太明显,但pandas其实有很多处理关系数据的能力。你可以看看与SQL的比较

62

SQLite3可能会适用。Python的接口支持 SQLite3 C API提供的内存数据库功能。

根据说明:

你可以使用特殊名称 :memory: 来创建一个在内存中的数据库。

在处理事务时,这种方式也相对便宜,具体要看你在做什么。要开始使用,只需:

import sqlite3
conn = sqlite3.connect(':memory:')

然后你就可以像使用普通数据库一样继续操作了。

根据你的数据类型,如果你可以使用键/值对(比如字符串、哈希、列表、集合、有序集合等),那么Redis可能是另一个值得考虑的选项(因为你提到想和其他程序共享数据)。

撰写回答