Python中的内存数据库

Cla*_*diu 23 python sql database in-memory-database

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

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

Tim*_*ost 42

SQLite3可能会工作.Python接口确实支持 SQLite3 C API提供的内存实现.

从规格:

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

交易相对便宜,取决于你在做什么.为了开始,只需:

import sqlite3
conn = sqlite3.connect(':memory:')
Run Code Online (Sandbox Code Playgroud)

然后,您可以像使用常规数据库一样继续操作.

根据您的数据 - 如果您可以使用键/值(字符串,散列,列表,集,排序集等) - Redis可能是另一种探索选项(正如您所提到的,您希望与其他程序共享).

  • 应该提到的是,目前(截至 2020 年)当使用对 sqlite3 对象的并发访问时,这不起作用。因此,如果您计划将其用作支持并发访问(大多数 Web 框架在幕后执行)的小型 Web 服务的简单后端,则此操作会失败。 (2认同)

use*_*491 6

这可能看起来并不明显,但Pandas有很多关系能力。查看与 SQL 的比较