Database Comparison

"Database Comparison "

Posted by Stephen on January 6, 2021

前言

本文以MySQL、Postgresql、MongoDB、Redis数据库的对比

环境

系统环境

Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.4 LTS
Release:	18.04
Codename:	bionic
Linux version :       5.3.0-46-generic ( buildd@lcy01-amd64-013 ) 
Gcc version:         7.5.0  ( Ubuntu 7.5.0-3ubuntu1~18.04 )

软件信息

version : 	
     None

正文

  MySQL Postgresql MongoDB Redis InfluxDB
数据库模式 关系型(RDBMS)-Relational 关系型(RDBMS)-Relational 非关系型(Nosql database)-Document 非关系型(Nosql database)-Key-value 非关系型(Nosql database)-Time Series
存储方式 不同的引擎有不同的存储方式 不同的引擎有不同的存储方式 不同的引擎有不同的存储方式虚拟内存+持久化    
查询语句 传统sql语句
SELECT * FROM users
传统sql语句
SELECT * FROM users
独特的Mongodb查询
db.users.find()
   
架构特点 常见有单点,M-S,MHA, MMM, Cluster等架构方式   可以通过副本集,以及分片来实现高可用    
数据处理方式 不同的引擎拥有自己的特点 处理结构化和非结构化的数据 基于内存,将热数据存在物理内存中,从而达到高速读写    
成熟度 拥有较为成熟的体系,成熟度较高   新型数据库,成熟度较低    
广泛度 开源数据库的份额在不断增加,mysql的份额也在持续增加   Nosql数据库中,mongodb是较为完善的db之一,使用人群也在不断增加    
优势   1、数据类型多! PG不止支持传统数据类型:numeric、strings、date、decimal等,还支持非结构的数据类型:json、xml、hstore等以及网络数据类型、bit字符串,还有ARRAYS,地理数据类型。
2、支持地理信息处理扩展!PostGIS 为PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测量与几何拓扑分析。在功能上,PostGIS具有下列优势:O2O业务场景中的LBS业务使用PostgreSQL + PostGIS有无法比拟的优势。
3、快速构建REST API!PostgREST 可以方便的为任何 PostgreSQL 数据库提供完全的 RESTful API 服务
4、支持树状结构!支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据。
1、快速!拥有适量级内存的Mongodb的性能是非常迅速,它将热数据存储在物理内存中(而不仅仅是索引和少部分数据),使得热数据的读写变得十分快速,从而提高了整体的数据和效率;
2、高扩展性!Mongodb的高可用与集群架构拥有十分高的扩展性,通过物理机器的增加,以及sharding的增加,Mongodb的扩展将地道一个十分惊人的地步。
3、自身的Failover机制!Mongo的副本集配置中,当主库遇到问题,无法继续提供服务的时候,副本集将选举出一个新的主库来继续提供服务。
4、Json的存储格式,Mongodb的json和Bson的存储格式十分适合文档格式存储与查询
   
缺点 在海量数据处理的时候效率会显著变慢。   不支持事务,开发文档不是很完善    
适用场景     事件的记录,内容管理或者博客平台等等    

后记

@TOC

Image text