Python中的内存数据库

问题描述 投票:24回答:4

我正在使用Python在大型数据库上进行一些查询,以从数据库中获取一些统计信息。我希望这些统计信息在内存中,以便其他程序可以使用它们而无需访问数据库。

我正在考虑如何构造它们,并尝试设置一些复杂的嵌套字典后,我意识到一个好的表示形式将是一个SQL表。不过,我不想将数据存储回持久性数据库中。是否有支持使用SQL语法查询数据的SQL数据库的内存实现?

python sql database in-memory-database
4个回答
42
投票

SQLite3可能有效。 Python接口does support SQLite3 C API提供的内存中实现。

根据规格:

您也可以提供特殊名称:memory:在RAM中创建数据库。

交易也相对便宜,这取决于您在做什么。要开始,只需:

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

然后您可以像使用常规数据库一样继续进行。

取决于您的数据-如果可以使用键/值(字符串,哈希,列表,集合,排序集合等)获取数据-Redis可能是另一个可供探索的选择(因为您提到过要与之共享其他程序)。


1
投票

我想,SQLite3将是最好的选择。

[如果可能,请看memcached。 (对于键值对,可以快速点亮!)

UPDATE 1:

HSQLDB对于SQL Like表。 (不支持python)


0
投票

您可以使用SQLite之类的数据库。它不是严格意义上的内存,但是它相当轻巧,并且将与您的主数据库完全分开。


0
投票

聚会晚了,但是pyfilesystem2(我不隶属于)似乎很合适:

https://pyfilesystem2.readthedocs.io

pip install fs
from fs import open_fs
mem_fs = open_fs(u'mem://')
...
© www.soinside.com 2019 - 2024. All rights reserved.