千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > MySql、Postgresql和MongoDB这三者的区别?

MySql、Postgresql和MongoDB这三者的区别?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 06:34:43 1697150083

一、MySql、Postgresql和MongoDB这三者的区别

1、概念不同

MySql:MySQL是一种开源的关系型数据库管理系统Postgresql:PostgreSQL是一种开源的关系型数据库管理系统,具有很强的扩展性和功能性MongoDB:MongoDB是一种开源的面向文档的非关系型数据库管理系统

2、应用场景不同

MySql:适用于Web应用程序等场景Postgresql:适合于高并发、大规模的企业级数据应用MongoDB:适用于Web应用程序等场景

3、作用不同

MySql:使用的编程语言为SQL,支持交互式操作和批处理处理;支持复制、负载平衡和备份和恢复等高可用性功能Postgresql:对SQL标准的支持比MySQL更完整,支持更高级的数据类型,如数组、JSON、XML和GIS;支持多版本控制、事务管理以及高级的并发控制技术,因此常用于高并发、大规模的应用场景;提供了许多工具和插件支持,使得它易于扩展和集成MongoDB:不使用表和行,而是使用文档和集合作为数据组织方式。文档可以是JSON格式,可以存储复杂的数据类型和结构;对于大型数据量在处理速度上具有优势,适合于需要大量写入和查询操作的场景;支持高可用性和自动分片,使其易于扩展和管理

二、MySql介绍

1、简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是较好的 RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

2、系统特性

MySQL使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby、.NET和 Tcl 等支持多线程,充分利用 CPU 资源优化的 SQL查询算法,有效地提高查询速度既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径提供用于管理、检查、优化数据库操作的管理工具支持大型的数据库,可以处理拥有上千万条记录的大型数据库支持多种存储引擎MySQL 是开源的,所以你不需要支付额外的费用MySQL 使用标准的 SQL数据语言形式MySQL 对 PHP 有很好的支持,PHP是比较流行的 Web 开发语言MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性复制全局事务标识,可支持自我修复式集群复制无崩溃从机,可提高可用性复制多线程从机,可提高性能3倍更快的性能新的优化器原生JSON支持多源复制GIS的空间扩展

三、Postgresql介绍

1、简介

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多名列前茅概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

2、存储系统

存储系统是PostgreSQL的最底层模块,它向下通过操作系统接口访问物理数据,向上为上层模块提供存储操作的接口和函数。PostgreSQL对物理数据的访问和操作都是通过其存储系统模块来进行的。PostgreSQL存储系统是由以下几个子模块所构成的:

页面管理子模块:对PostgreSQL缓冲区页面的组织结构进行定义以及提供页面操作的方法。缓冲区管理子模块:管理PostgreSQL的缓冲区,包括本地缓冲区和共享缓冲区。存储设备管理子模块:数据库记录是存储在存储介质上的,存储设备管理子模块将屏蔽不同物理存储设备(块设备,流设备)接口函数的差异,向上层缓冲区管理子模块提供统一的访问接口函数。文件管理子模块:一般的操作系统对一个进程允许打开的文件数是有限制的,而PostgreSQL服务器有些时候需要打开的文件数是很多的,因此PostgreSQL文件管理子模块自身为了突破这个瓶颈,封装了文件的读写操作,在这里建立了一个LRU链表,通过一定的替换算法来对打开的文件进行管理,使得可以打开的文件数目不受操作系统平台的限制。

四、MongoDB介绍

1、简介

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2、设计特征

MongoDB 的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。其主要功能特性如下:

面向集合存储,容易存储对象类型的数据:在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档模式自由,采用无模式结构存储:在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征支持完全索引,可以在任意属性上建立索引,包含内部对象:MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力支持查询:MongoDB 支持丰富的查询操作,MongoDB 几乎支持SQL中的大部分查询强大的聚合工具:MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务支持复制和数据恢复:MongoDB 支持主从复制机制,可以实现数据备份、故障恢复、读扩展等功能。而基于副本集的复制机制提供了自动故障恢复的功能,确保了集群数据不会丢失使用高效的二进制数据存储,包括大型对象(如视频):使用二进制格式存储,可以保存任何类型的数据对象自动处理分片,以支持云计算层次的扩展:MongoDB 支持集群自动切分数据,对数据进行分片可以使集群存储更多的数据,实现更大的负载,也能保证存储的负载均衡

延伸阅读1:MySQL授权协议

MySQL 遵守的不只是 GPL 协议,而是双授权模式(dual license)即你在遵守 GPL 协议的开源项目使用 MySQL,需要遵守 GPL 协议方能使用。如果你在非开源项目使用(即软件不打算开放源代码),且该软件用来销售,则需要向 MySQL 支付相应 license 费用。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT