使用python文件作为数据库

时间:2018-01-12 01:40:23

标签: python mysql sql django python-3.x

我是一名中级python开发人员,在数据分析中使用t-sql / mysql方面有相当多的经验。我正在尝试使用python构建我网站后端的某些组件。#/ p>

在我的一个应用程序中,我没有查询数据库,而是将一些基于字典的数据结构直接放在python文件的列表中,然后将其导入到包含应用程序逻辑的脚本中。重要的是要注意这个数据是静态的,此时大约有5k字典。

数据本身包含键值对,其中值通常是元组的列表,因此我发现python数据结构的灵活性比传统的RDBMS表更容易使用。

我已经浏览了互联网,我似乎无法找到任何对开发人员实际使用.py文件存储数据以供其程序使用的参考,这让我相信这种方法不应该用于生产现场。

我希望能够澄清为什么会出现这种情况(和潜在的替代方案)

  1. 对于RDBMS解决方案,我的.py解决方案是否会缩小规模?要么使用我的应用程序的用户数量增加,要么我选择在我的数据集中支持更多的车辆?
  2. 如果.py解决方案不起作用,是否有一个nosql解决方案可以为我提供灵活的数据结构?或者是这个用例中的mysql解决方案仍然优越? 谢谢!

2 个答案:

答案 0 :(得分:1)

我可以说你的.py文件解决方案可能不会持续很长时间。如果您正在寻找合适的键值存储解决方案,那么您一定要查看nosql数据库后端,例如redismongodb

答案 1 :(得分:1)

我过去做过类似的事情 - shelving。这是一个标准的lib模块,它允许你将python对象写入磁盘,使它们很好并且易于加载。

但与您的解决方案一样,会出现严重的可扩展性问题。例如 - 在搁架示例中,整个对象被加载到内存中。我怀疑你的实现是一样的,假设你导入它来获取数据。

数据库的优点之一是不需要将整个数据库保留在内存中。这也意味着您可以更快地执行某些搜索;与编写良好的数据库查询相比,迭代python中的数千个对象以检查它们是否存在特定条件。

如果您当前的解决方案仍然有效,那么可能没有理由立即更改所有内容。但是,如果您认为此应用程序将继续增长,那么制定迁移计划并不是一个坏主意。

我最终将我的应用程序移动到RethinkDB以获得它的价值。