最近老蒋看到群里不少的朋友在数据库开始用MongoDB,而不使用MySQL。那MongoDB和MySQL数据库有什么不同及如何选择?其实,MongoDB数据库是在MySQL版本后的衍生版本,本来他的版本号也是跟随同步发布的,后来由于MySQL数据库版本更新太慢,于是MongoDB数据库自行迭代发展,所以我们看到MongoDB版本号比较大。
第一、MongoDB和MySQL的比较
MySQL与MongoDB两种数据库类型都是开源数据库,不过,MySQL是传统的关系型数据库,而MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。两者各有各的优点,我们所熟知的那些SQL语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。
A、关系型数据库MySQL
1、在不同的引擎上有不同的存储方式。
2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
3、开源数据库的份额在不断增加,mysql的份额页在持续增长。
4、缺点就是在海量数据处理的时候效率会显著变慢。
B、非关系型数据库MongoDB
非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性,呈现分层的树状数据结构。数据结构由键值对组成。MongoDB是一个文档数据库,其中一个集合包含不同的文档。一个文档之间的字段数,内容和文档大小可能会有所不同。MongoDB支持使用与SQL几乎一样强大的基于文档的查询语言对文档进行动态查询。 MongoDB易于扩展。
1、存储方式:虚拟内存+持久化。
2、查询语句:是独特的MongoDB的查询方式。
3、适合场景:事件的记录,内容管理或者博客平台等等。
4、架构特点:可以通过副本集,以及分片来实现高可用。
5、数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
6、成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。
第二、MongoDB和MySQL如何选择
那我们在应用的时候如何选择两个数据库。
1、根据适用性
我们需要看有些项目是指定必须用 MYSQL数据库的,那我们就不能选择MongoDB数据库,如果不挑剔的化都是可以选择。
2、选择熟悉的
我们选择数据库的时候还是尽量的选择熟悉的版本数据库。比如我们并非技术开发者,或者我们有一定的运维能力。我们还是用熟悉的MYSQL数据库。如果我们有一定的运维能力且熟悉MongoDB,也是可以适用的。
从功能上看,MongoDB和MYSQL是差不多的,前者偏向文档存储,占用的空间比较大。大型数据库、移动和社交基础设施项目可以用MongoDB。