PostgreSQL 和 MongoDB 的区别
1. PostgreSQL(对象关系数据库)
PostgreSQL 是一个功能强大的开源对象关系数据库管理系统 (ORDBMS),强调可扩展性和标准合规性,它使用和扩展 SQL 语言以及安全存储和扩展最复杂数据工作负载的许多功能。PostgreSQL 是符合 ACID 的事务性的,它以表格格式存储数据,并使用约束、触发器、角色、存储过程和视图作为核心组件。
为什么使用 PostgreSQL?
- 免费和开源。
- 提供多种语言。
- 高度可扩展。
- 保护数据完整性。
- 构建容错环境。
- 强大的门禁系统
- 支持国际字符。
- 苹果公司也使用 PostgreSQL!
在 PostgreSQL 中编写查询语句:
创建学生表:
CREATE TABLE students (id INT, name VARCHAR (100));
将记录插入学生表
INSERT INTO students VALUES (1, 'geekdocs');
从学生表中读取记录:
SELECT * FROM students;
更新学生表中的记录:
UPDATE students SET name="geekdocsForGeeks" WHERE id = 1;
从学生表中删除记录:
DELETE FROM students WHERE id = 1;
2. MongoDB(跨平台的面向文档的数据库)
MongoDB 是一个 NoSQL 数据库,其中每条记录都是由键值对组成的文档,这些键值对类似于带有模式的 JSON 对象。MongoDB 很灵活,允许其用户创建模式、数据库、表等。由主键可识别的文档构成了 MongoDB 的基本单元。安装 MongoDB 后,用户也可以使用 Mongo shell。Mongo shell 提供了一个 JavaScript 接口,用户可以通过该接口进行交互和执行 CRUD 操作。
换句话说,我们可以说 MongoDB 是一个通用的、基于文档的分布式数据库,专为现代应用程序开发人员和根据服务器端公共许可证许可的云时代而构建。
为什么要使用 MongoDB?
- 可扩展,可以为多台机器服务。
- 它基于 JavaScript,使其更易于使用。
- 具有更快的响应,因为它是一个面向文档的数据库。
- 更简单的环境设置
- 它使用 JSON 语法,非常易于使用,并且具有广泛的浏览器兼容性。
- 数据以 JSON 的形式存储,无论是对象、对象成员、数组、值还是字符串。
- Uber 和 Stack 公司使用 MongoDB!
在 MongoDB 中编写查询:
创建学生数据库
use student;
创建学生表
db.createCollection("students");
将记录插入学生集合
db.students.insert
(
{
"id" : 1,
"Name" : "geekdocs",
"Team": "geekdocs For Geeks"\n }
);
从学生集合中读取:
db.students.find({Name : "geekdocs"}).forEach(printjson);
PostgreSQL 和 MongoDB 的区别:
MongoDB | PostgreSQL |
---|---|
MongoDB 是用 C++ 编写的 | PostgreSQL 是用 C 编写的 |
MongoDB 是由 10gen 于 2007 年创立的,它创建了基于单词humongous 的产品 | PostgreSQL 是一个开源项目,由 PostgreSQL Global Development Group 及其多产社区维护 |
MongoDB 提供社区支持论坛、ServerFault 和 StackOverflow。用户还可以通过企业级支持获得 24×7 的企业支持。 | PostgreSQL 为用户提供了广泛的社区和商业支持选项。社区支持包括邮件列表和 IRC |
非关系型数据库管理系统 | 关系型数据库管理系统 |
面向文档 | 面向对象 |
仅提供英语版本 | 提供多语言版本 |
PostgreSQL 和 MongoDB 哪个好,为什么?
PostgreSQL 在以下情况下是最好的:需要开箱即用的标准兼容、事务性和 ACID(原子性、一致性、隔离性和持久性)兼容,并且还广泛支持 NoSQL 功能。
MongoDB 在以下情况下是最好的:需要可扩展性和缓存来进行实时分析,但不是为事务数据(即会计系统)构建的。