我是一名中级python开发人员,在数据分析中使用t-sql / mysql方面有相当多的经验。我正在尝试使用python构建我网站后端的某些组件。#/ p>
在我的一个应用程序中,我没有查询数据库,而是将一些基于字典的数据结构直接放在python文件的列表中,然后将其导入到包含应用程序逻辑的脚本中。重要的是要注意这个数据是静态的,此时大约有5k字典。
数据本身包含键值对,其中值通常是元组的列表,因此我发现python数据结构的灵活性比传统的RDBMS表更容易使用。
我已经浏览了互联网,我似乎无法找到任何对开发人员实际使用.py文件存储数据以供其程序使用的参考,这让我相信这种方法不应该用于生产现场。
我希望能够澄清为什么会出现这种情况(和潜在的替代方案)
答案 0 :(得分:1)
答案 1 :(得分:1)
我过去做过类似的事情 - shelving。这是一个标准的lib模块,它允许你将python对象写入磁盘,使它们很好并且易于加载。
但与您的解决方案一样,会出现严重的可扩展性问题。例如 - 在搁架示例中,整个对象被加载到内存中。我怀疑你的实现是一样的,假设你导入它来获取数据。
数据库的优点之一是不需要将整个数据库保留在内存中。这也意味着您可以更快地执行某些搜索;与编写良好的数据库查询相比,迭代python中的数千个对象以检查它们是否存在特定条件。
如果您当前的解决方案仍然有效,那么可能没有理由立即更改所有内容。但是,如果您认为此应用程序将继续增长,那么制定迁移计划并不是一个坏主意。
我最终将我的应用程序移动到RethinkDB以获得它的价值。