database - PostgreSQL vs MongoDB 在 Django 应用程序中执行 python 函数
问题描述
我正在尝试构建一个 Django Web 应用程序,但我不确定要使用什么数据库。能够对数据执行 python 函数并具有高度的数据操作可能性,以及相对快速变化的数据(每天或每隔一天),这一点非常重要。经过之前的研究,似乎 PostgreSQL 和 MongoDB 可能是竞争者,但我真的很想听听你的意见。谢谢!
解决方案
数据库结构呢?
PostgreSQL:
PostgreSQL 是一个对象关系数据库管理系统 (ORDBMS),强调可扩展性和标准合规性。PostgreSQL 符合 ACID、事务性、具有可更新和物化视图、触发器和外键。它还支持函数和存储过程。
PostgreSQL 使用表、约束、触发器、角色、存储过程和视图作为您使用的核心组件。一个表由行组成,每行包含一组相同的列。PostgreSQL 使用主键来唯一标识表中的每一行(也称为记录),并使用外键来确保两个相关表之间的引用完整性。
PostgreSQL 也支持许多 NoSQL 特性。
MongoDB:
MongoDB 使用类似 JSON 的文档来存储无模式数据。在 MongoDB 中,文档集合不需要预定义的结构,并且不同文档的列可能会有所不同。
MongoDB 具有关系数据库的许多特性,包括富有表现力的查询语言和强一致性。但是,由于它是无模式的 MongoDB 允许您创建文档而无需先为文档创建结构。
与您拥有的关系数据库管理系统 (RDBMS) 进行有用的比较:
Table | Column | Value | Records.
相比之下,在 MongoDB 中,您有:
Collection | Key | Value | Document.
这意味着 MongoDB 中的集合就像 RDBMS 中的表。
文档就像 RDBMS 中的记录。可以通过添加或删除字段轻松修改文档,而无需重新构建整个文档。
哪个数据库适合您的业务?
PostgreSQL: PostgreSQL 似乎越来越受欢迎。如果您正在寻找一种开箱即用的标准兼容、事务和 ACID 兼容的解决方案,并且广泛支持 NoSQL 功能,那么您应该查看 PostgreSQL。
MongoDB:如果您需要可扩展性和缓存以进行实时分析,MongoDB 可能是一个不错的选择;但是,它不是为交易数据(会计系统等)而构建的。MongoDB 经常用于移动应用程序、内容管理、实时分析和涉及物联网的应用程序。如果您没有明确的架构定义,MongoDB 可能是一个不错的选择。
推荐阅读
- python - 在pyexcel中更改Book对象中工作表的默认顺序
- apache-nifi - Apache NIFI ExecuteStreamCommand
- swift - SCNNode 未锚定在现实世界坐标中
- python - Q-learning 算法奖励生成
- sockets - OpenCV 如何处理 TCP 连接?
- node.js - MEAN Stack 保护布局路线
- ios - 斯威夫特:当两个视图彼此不直接连接时,是否可以使用委托?
- templates - 模板对象得到“没有命名类型”。
- json - 在外部 JSON 中搜索项目
- image-processing - 训练具有不同颜色特征的深度分类模型