Python 3:存储数据而不将其加载到内存中

时间:2018-12-21 06:35:01

标签: python-3.x flask

我目前正在构建一个Flask应用程序,该应用程序将包含很多我认为无法加载到内存中的数据。我搜索了很多地方,发现SQL似乎是一个很好的解决方案。遗憾的是,由于SQL的某些限制,我无法在该项目中使用SQL。

我的项目包含

的许多条目
database[lookupkey1][lookupkey2]...and more lookup keys

我当前的计划是覆盖__getitem__和__setitem__和__delitem__并将其替换为对数据库的调用。他们是可以存储大量地图/词典的任何数据库吗?

{"spam":{"bar":["foo","test"],"foo":["bar"]}}

我目前还使用JSON保存数据,因此如果数据库具有迁移当前数据库的简便方法,将不胜感激。

对不起,我不太擅长写堆栈溢出问题。

1 个答案:

答案 0 :(得分:1)

大多数面向文档的数据库(如MongoDB)将使您可以将数据另存为类似字典列表的嵌套对象,并使用其键和索引对其进行查询。

P.S。通过Python的dict访问器访问这样的数据库是一个坏主意,因为它将为每个步骤产生一个冗余的数据库查询,这是非常无效的,并可能导致性能问题。尝试查看您选择的数据库的ORM,因为大多数ORM允许您以类似于访问字典和列表的方式来访问面向文档的DB数据。