首页 > 数据库 >MongoDB和mysql的区别

MongoDB和mysql的区别

时间:2022-12-01 15:00:37浏览次数:75  
标签:关系 存储 区别 MongoDB 数据库 MySQL 文档 mysql

一.什么是MongoDB
MongoDB 是一个基于分布式文件存储的数据库。
由 C++ 语言编写,是一个开源数据库系统。
旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
二.什么是Mysql
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL
AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于
1995 年建立的。
功能强大
支持跨平台
运行速度快
支持面向对象
安全性高
成本低
支持各种开发语言
数据库存储容量大
支持强大的内置函数
三,区别
1.关系型数据库(mysql) 与 非关系型数据库(mongodb)的区别:

2.两方的优缺点以及特性:
a1.关系型数据库(mysql):
特性:

关系型数据库是指采用了关系模型来组织数据的数据库;
关系型数据库的最大特点就是事务的一致性
简单来说,关系模型指的就是二维表格模型,关系型数据库就是由二维表及其之间的关联组成的数据组织
优点:

容易理解;
使用方便;
易于维护;
支持SQL,可用于复杂的查询
缺点:

为了维护一执行需要消耗大量的性能,
影响读写
固定的表结构
高并发读写需求
海量数据的高效率读写
a2.非关系型数据库(mongodb):
特性:

使用键值对存储数据
分布式
不支持ACID特性
非关系型数据库严格上来说,不算是一种数据库,应该是一种数据结构化存储方法的集合
优点:

无需经过sql层的解析,读写性能高;
基于键值对,数据没有耦合性,容易扩展;
存储数据的格式,nosql使用key:val的形式,文档的形式,图片形式等等,而关系型数据库则只支持基础类型
缺点:

不提供sql支持,学习成本高
无事务处理,附加功能和报表支持也不好

MongoDB和MySQL的区别是什么?

MongoDB和MySQL的区别

前言:

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。


一、关系型数据库-MySQL

1、在不同的引擎上有不同的存储方式。
2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
3、开源数据库的份额在不断增加,mysql的份额页在持续增长。
4、缺点就是在海量数据处理的时候效率会显著变慢。


二、非关系型数据库-MongoDB

非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性,呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。

1、存储方式:虚拟内存+持久化。
2、查询语句:是独特的MongoDB的查询方式。
3、适合场景:事件的记录,内容管理或者博客平台等等。
4、架构特点:可以通过副本集,以及分片来实现高可用。
5、数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
6、成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。


三、MongoDB优势与劣势

优势:
1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。
2、MongoDB的高可用和集群架构拥有十分高的扩展性。
3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。
劣势:
1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。
2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
3、MongoDB占用空间过大。


四、对比

数据库MongoDBMySQL
数据库模型 非关系型 关系型
存储方式 以类JSON的文档的格式存储 不同引擎有不同的存储方式
查询语句 MongoDB查询方式(类似JavaScript的函数) SQL语句
数据处理方式 基于内存,将热数据存放在物理内存中,从而达到高速读写 不同引擎有自己的特点
成熟度 新兴数据库,成熟度较低 成熟度高
广泛度 NoSQL数据库中,比较完善且开源,使用人数在不断增长 开源数据库,市场份额不断增长
事务性 仅支持单文档事务操作,弱一致性 支持事务操作
占用空间 占用空间大 占用空间小
join操作 MongoDB没有join MySQL支持join

以上~

推荐学习:《mysql视频教程

 

 

 

 

参考:MongoDB和mysql的区别

参考:MongoDB和MySQL的区别是什么

标签:关系,存储,区别,MongoDB,数据库,MySQL,文档,mysql
From: https://www.cnblogs.com/aspirant/p/16941368.html

相关文章

  • MySQL数据库-安装-笔记
    1.服务器端安装安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入sudoapt-getinstallmysql-server当前使用的ubuntu镜像中已经安装好了mysql服务器端,无需再安装,并......
  • MySQL数据库-Navicat图形界面工具操作-笔记
    1.Navicat连接打开navicat,点击工具栏的“连接”,选择“mysql”,弹出窗口如下图在弹出的窗口中填写名称、主机ip、端口、用户名、密码,如下图密码为mysql点击确定,在左侧栏会看到......
  • Mysql昨天,上个月条件查询
    1.查询昨日数据SELECT*FROMtestWHEREDATEDIFF(DATE_FORMAT(NOW(),'%Y%m%d'),DATE_FORMAT(created_time,'%Y%m%d'))=12.查询上月数据SELECT*FROMtestWHERE......
  • MYSQL 全文检索
    项目中有个日志表需,需求要对日志内容做模糊匹配,但是考虑到数据量会比较大,用like性能不高。查了一下可以用MYSQL自带的全文检索,并且小测试了一下。创建全文检索字段,只有cha......
  • Python高级-静态方法和类方法的根本区别-笔记
    1.类属性、实例属性它们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,实例属性属于对象类属性属于类classProvince(object):#类属性country='......
  • pymysql.err.InterfaceError: (0, '')
    pymysql.err.InterfaceError:(0,'')背景自动化代码需要坚固开发服和测试服,但是又有一些固定数据(或者说是死数据),无法同时满足开发服和测试服,每次if...else...判断url......
  • c#中abstract与virtual的区别
    1.abstract方法只能在抽象类中声明,虚方法则不是。  abstract方法必须在派生类中重写,而virtual则不必2.abstract方法不能声明方法实体,     abstractpubl......
  • 国际物流报关中EDI和电子单有什么区别?
    在国际物流货物运输过程中,报关是其中必不可少的一个环节。国际物流报关中的EDI和电子单是什么?他们有什么区别呢?今天,箱讯小编为大家来介绍下。1、EDI报关:EDI(ElectricDataIn......
  • mongodb副本集杂谈
    1.什么是mongodb副本集mongodb副本集是一种在多台机器同步数据的进程,副本提供了数据冗余,扩展了数据可用性。在多台服务器保存数据以避免一台服务器出现问题导致数据的丢失......
  • Python 中os.path与sys.path的区别
    定义区别os.path主要是用于对系统路径文件的操作。sys.path主要是对Python解释器的系统环境参数的操作(动态的改变Python解释器搜索路径)。验证>>>importos,sys>>......