Bluehost香港虚拟主机将打破数据库术语,解释较新的系统与MySQL的区别。虽然很多Web专业人士可能很熟悉本文的很多术语,但本文仍把它们都摆出来,以帮助那些听不懂技术术语的人。
MySQL和MongoDB是”数据库管理系统”。为了真正理解两者的区别,首先看看什么是数据库:
什么是数据库?
数据库是存储数据集合的应用程序,并以某种方式进行组织。数据可以包括从产品清单到图像、视频、个人信息等信息和内容。
数据库能做什么?
由于安全和速度等一些原因,将数据存储在单独的计算机上的文件系统中,并不能满足当今网站要求。
数据库可帮助轻松有效地创建、访问、搜索和复制网站的数据。帮助管理该数据库的软件被称为 “数据库管理系统 “或DBMS。
DBMS——MongoDB与MySQL:
有各种数据库管理系统,每种系统都以某种方式组织数据。我们称之为’数据库模型’。数据库模型的一些例子包括”关系模型”和一种被称为”非关系模型”的新模型。MySQL使用前一种模型,MongoDB使用后一种模型。推荐阅读:《浅议MySQL数据库的强大功用》
关系数据库:
关系数据库中的数据被分类到表中,不同列、行和其他表中的数据之间有关系或链接。数据库中的表看起来类似于Excel电子表格中的列、行和索引。关系数据库接收命令/请求,或SQL查询,或结合不同表的数据的结构化查询语言,来完成”查询”。
SQL是用于在数据库中创建、插入、存储、更新、删除、检索和操作数据的语言。
MySQL:
MySQL是世界上最流行的数据库管理系统。主要用于基于Web的应用,因其易用性和多年来经过测试的性能而受到欢迎。
为什么大多数Web开发人员喜欢用MySQL工作?
- 开源:只有企业需要购买许可证
- 用途广泛:通常与大多数虚拟主机账户集成,如Linux共享主机包,并且可以在大多数平台上广泛使用,如Linux、Windows、Ubuntu、Mac OS X等。推荐阅读:《Python数据库创建mysql数据库表和写入mysql数据库》
- 易于使用
- 可靠:多年来一直在尝试和测试
- 能很好地与PHP一起使用,也能与其他编程语言一起使用,如JAVA、PERL、C、C++等。
- 适用于小型和大型应用
关系数据库和MySQL的缺点是什么?
- 可扩展性:为某一记录添加更多的数据可能涉及扩展到几个表、列和行
- 速度:由于数据的结构,分散数据有时需要花点时间
- 由于这种复杂性,数据库管理人员很难插入新数据
- 在使用表之前,需要先定义该表的模式
数据库受欢迎程度
可以看到,最受欢迎的DBMS是”关系型”,前三名的使用率在过去几个月里有所下降。唯一进入这一榜单的非关系数据库是名为’MongoDB’的数据库,可以看到,其数量正在增长。推荐阅读:《bluehost后台Mysql上传数据库过程》
MongoDB:
MongoDB是一个使用”文档模型”的开源数据库系统。与MySQL(1995年推出)不同,MongoDB是一个较新的数据库管理系统(2009年发布),正在对当今网络世界产生强烈影响。该公司报告了2018年第一季度的强劲增长数字,其数据库模型正在颠覆这个行业。微软最近推出了一个API,允许在其2017年推出的Azure Cosmos DB上使用MongoDB,谷歌宣布将进一步在谷歌云上使用MongoDB。
非关系数据库/NoSQL和MongoDB:
非关系数据库组织数据的方式非常不同。虽然有四种非关系数据库,但本文只关注其中一种,即MongoDB所使用的”基于文档的模型”。这种数据库将数据组织成文档,更确切地说,是JSON文档。JSON是一种便于人类和机器之间交换数据的格式。与传统SQL结构的数据库相比,JSON文档提供了更灵活的数据结构,因为可以随时添加新的字段,也可以有任何类型的数据值。这对那些需要处理大量数据的公司来说是一个巨大的帮助。如今,许多人认为RDMS无法满足当今数据密集型应用的期望。与MySQL不同,非关系数据库可以存储非结构化数据,如用户日志、会话、图像、视频、聊天记录以及来自物联网设备的数据。
是什么让MongoDB如此有吸引力?
MongoDB可以支持以下内容:
- 灵活性——首先,文件结构更符合开发者在各自编程语言中的编码方式,这些语言清晰明了,并以键值对的形式进行结构化。这使得随时添加和编辑数据/文件都变得更加容易。在关系数据库中,这将必须涉及数据库的重组
- 支持广泛的查询——字段、表达式、范围查询、JavaScript函数等
- 更快的周转时间——因为在MySQL数据库中必须存储在几个表中的相关数据,在MongoDB中只需存储在同一文件中。
- 无需遵循严格的模式——在定义文档结构之前,可以先创建文档,这对于处于创业阶段、不确定数据库结构的企业来说非常有帮助。
- 就像上面提到的,MongoDB的特点使其更适合那些处理大量数据的人。
MongoDB的缺点是什么?
- 由于这是一个较新的数据库,除非自学,MongoDB的专家数量比MySQL的专家要少
- 众所周知,MongoDB会占用大量的服务器内存
MySQL和MongoDB有何相似之处?
- 两者都使用索引——如果缺少索引,就必须扫描整个数据库以找到与查询相匹配的内容
- 许可——两者都是开源的
- 安全风险——说实话,这个问题还没有定论。在使用这两个系统时要采取足够的安保措施。推荐阅读:《虚拟主机如何导入MSSQL或mysql的数据》
MongoDB与MySQL的对比——总结
MySQL | MongoDB | |
发布 | 1995年发布——2018年是其第8个版本 | 2009年发布 |
结构 | 关系型 | 非关系型 |
发布者 | Oracle | MongoDB |
速度 | 比MongoDB慢 | 比MySQL快。其结构加快了开发过程 |
灵活性 | 不大——使用前需要先定义数据库模式 | 与MySQL相比,灵活性相当大——不需要定义模式 |
可扩展性 | 较难扩展,但有可能。MySQL数据库纵向可扩展——可以在一台服务器上增加更多的资源 | 比MySQL更可扩展。MongoDB横向可扩展,可以添加更多的服务器来扩展数据库 |
需要数据库管理员 | 需要
|
不需要——开发人员和管理员都可以使用 |
适用于 | 会计公司和银行的理想选择——以及其他需要结构清晰的数据的公司。非常适合有或多或少固定要求的企业。Twitter是违背了这一点的一家大型公司,它是MySQL的最大用户之一 | 非常适合拥有实时数据、物联网、内容管理、移动应用、社交网络、面向大数据/网络分析的系统以及那些不需要明确结构化数据或模式不断变化的业务。适合需求比较多变的企业。
|
从MongoDB与MySQL的比较中可以看出,两个系统都有其优缺点。MongoDB在速度和可扩展性方面获胜,而MySQL在安全方面更胜一筹。有几篇文章吹捧MongoDB的新颖性,并将MySQL称为老式、过时的系统。这与事实相差甚远。非关系数据库只是一种替代技术。推荐相关阅读:《Linux主机开启PDO 、PDO_MYSQL扩展》