我目前正在构建一个Flask应用程序,该应用程序将包含很多我认为无法加载到内存中的数据。我搜索了很多地方,发现SQL似乎是一个很好的解决方案。遗憾的是,由于SQL的某些限制,我无法在该项目中使用SQL。
我的项目包含
的许多条目database[lookupkey1][lookupkey2]...and more lookup keys
我当前的计划是覆盖__getitem__和__setitem__和__delitem__并将其替换为对数据库的调用。他们是可以存储大量地图/词典的任何数据库吗?
{"spam":{"bar":["foo","test"],"foo":["bar"]}}
我目前还使用JSON保存数据,因此如果数据库具有迁移当前数据库的简便方法,将不胜感激。
对不起,我不太擅长写堆栈溢出问题。
答案 0 :(得分:1)
大多数面向文档的数据库(如MongoDB)将使您可以将数据另存为类似字典列表的嵌套对象,并使用其键和索引对其进行查询。
P.S。通过Python的dict访问器访问这样的数据库是一个坏主意,因为它将为每个步骤产生一个冗余的数据库查询,这是非常无效的,并可能导致性能问题。尝试查看您选择的数据库的ORM,因为大多数ORM允许您以类似于访问字典和列表的方式来访问面向文档的DB数据。