我正在使用Python在大型数据库上进行一些查询,以从数据库中获取一些统计信息。我希望这些统计信息在内存中,以便其他程序可以使用它们而无需访问数据库。
我正在考虑如何构造它们,并尝试设置一些复杂的嵌套字典后,我意识到一个好的表示形式将是一个SQL表。不过,我不想将数据存储回持久性数据库中。是否有支持使用SQL语法查询数据的SQL数据库的内存实现?
SQLite3可能有效。 Python接口does support SQLite3 C API提供的内存中实现。
根据规格:
您也可以提供特殊名称:memory:在RAM中创建数据库。
交易也相对便宜,这取决于您在做什么。要开始,只需:
import sqlite3
conn = sqlite3.connect(':memory:')
然后您可以像使用常规数据库一样继续进行。
取决于您的数据-如果可以使用键/值(字符串,哈希,列表,集合,排序集合等)获取数据-Redis可能是另一个可供探索的选择(因为您提到过要与之共享其他程序)。
您可以使用SQLite之类的数据库。它不是严格意义上的内存,但是它相当轻巧,并且将与您的主数据库完全分开。
聚会晚了,但是pyfilesystem2(我不隶属于)似乎很合适:
https://pyfilesystem2.readthedocs.io
pip install fs
from fs import open_fs
mem_fs = open_fs(u'mem://')
...