去年,当我在他们的网站上检查SQLite时,建议的SQLite数据库大小为2千兆字节.但现在,我再也找不到这个建议了.
那么有没有人试图使用一个大于2千兆字节的SQLite数据库使用它的最新版本?SQLite的表现如何?
PS:我想创建一个移动应用程序,需要在本地工作的大数据库(例如存储维基百科文章).
对于小型项目,SQLite(或类似的)中是否有内置的方法来保持 SQL/NoSQL 两全其美,即:
pip install <package>)dict,而每行没有通用结构,如 NoSQL 数据库例子:
db = NoSQLite('test.db')
db.addrow({'name': 'john doe', 'balance': 1000, 'data': [1, 73.23, 18]})
db.addrow({'name': 'alice', 'balance': 2000, 'email': 'a@b.com'})
for row in db.find('balance > 1500'):
print(row)
# {'id': 'f565a9fd3a', 'name': 'alice', 'balance': 2000, 'email': 'a@b.com'} # id was auto-generated
Run Code Online (Sandbox Code Playgroud)
注意:多年来,我一直惊讶于 SQLite 实际上可以在几行代码中实现多少有趣的功能,这就是为什么我问我这里描述的内容是否可以通过 SQLite 仅使用一些 SQLite 核心功能。
PS:可能看起来像一个解决方案,但实际上它只是一个持久的键/值存储,并且它不具有查询/功能; 此外(BerkeleyDB for Python)看起来已被弃用,并且没有类似 API 的查询功能。shelve findbsddb
我想在我的 Windows 机器上使用 dbm 模块,但它目前仅在 Unix 上受支持。http://docs.python.org/library/dbm.html
有谁知道具有类似语法的类似模块或在 Windows 上获得 dmb 功能的解决方法?能够访问写入硬盘驱动器的数据库,就像我编写代码以访问字典一样会很棒。感谢您的帮助!
正如在这里的评论和其他问题中所建议的那样,SQLite可以完全用作持久性密钥:值存储.
你将如何定义一个类(或只是包装函数),使用一个键:使用SQLite的值存储将如下所示:
kv = Keyvaluestore('/test.db')
kv['hello'] = 'hi' # set
print kv['hello'] # get
print 'blah' in kv # answer: False because there's no key 'blah' in the store
kv.close()
Run Code Online (Sandbox Code Playgroud)
?