我现在用的SQLite (w/SQLAlchemy ) 来存储大约 5000 个 dict 对象。每个 dict 对象都对应于 PyPI 中的一个条目,其中包含键 -(名称、版本、摘要 .. 有时“描述”可以与项目文档一样大)。
将这些条目(从 JSON)写回磁盘(SQLite 格式)需要几秒钟,感觉很慢。
写作的频率是每天一次,但是根据键(通常是名称或描述)读取/搜索特定条目的频率很高。
就像 apt-get 一样。
有没有比 SQLite 更适合我需求的 Python 存储库?
最佳答案
您是否在名称和描述上添加了索引?搜索 5000 个索引条目基本上应该是瞬时的(当然 ORM 会让你的生活变得更加艰难,就像它们通常做的那样 [即使是相对较好的 SQLAlchemy,但尝试“原始 sqlite”,它绝对应该会飞)。
仅写入更新的条目(再次使用真正的 SQL)也应该基本上是瞬时的——理想情况下,一个更新语句就可以完成,但即使是一千个也应该不是真正的问题,只要确保在开始时关闭自动提交循环(如果你想稍后再把它转回来)。
关于python - 用于 Python 的快速、可搜索的字典存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156993/