主流数据库介绍(一) | 青训营笔记

83 阅读11分钟

关系型数据库

MySQL

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。

  1. 定位

    开源、多平台、关系型数据库。

    目前使用最广泛、流行度最高的的开源数据库。

  2. 特点

    (1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据,有插件式存储引擎,支持多种存储引擎格式;

    (2)用编译安装的方式,或者二进制包的方式,按照“安装软件-创建实例-库表用户初始化”,可以很快完成数据库部署;

    (3)使用标准的SQL语句进行数据库管理,简单SQL语句的并发和性能较好,对视图、存储过程、函数、触发器等支持得不是太好;

    (4)在命令行界面有一些常用的命令显示状态和性能,在图形界面方面,有比较多的开源监控工具来监控和记录数据库的状态,比如zabbix,nagios,cacti,lepus等;

    (5)逻辑备份使用mysqldump/mysqldumper,物理备份用xtrabackup等工具进行备份;

    (6)MySQL高可用有多种方案,官方有基础的master-slave主从复制,新版本的innodb cluster,第三方的有MHA等高可用方案;

    (7)MySQL水平拆分,可以通过水平拆分proxy中间进行逻辑映射和拆分,扩大MySQL数据库的并发能力和吞吐量。

  1. 适用场景

    默认的innodb存储引擎,支持高并发,简单的绝大部分OLTP场景;

    Tokudb存储引擎,使用高并发insert的场景;

    Inforbright存储引擎,可以进行列压缩和OLAP统计查询场景。

  2. 选择注意

    使用MySQL进行OLTP业务时,需要注意数据量级,如果数据量级过大,需要进行水平拆分;

    如果有OLAP需求,可以结合其他架构综合考虑。

Microsoft SQL Server

SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。

目前最新版本是SQL Server 2022,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。

SQL Server提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。

  1. 定位:

    商业、Windows平台、关系型数据库。

    最早接触、与微软体系结合紧密的的商业数据库,属于“微软技术体系”。

  1. 特点:

    (1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据;

    (2)在Windows平台,用图形界面进行软件安装;

    使用:在Windows平台,使用SQL Server Mangement Studio图形界面进行安装;

    (3)一般通过Windows资源管理和SQL server图形工具进行系统和数据库性能显示;

    (4)通常用第三方备份恢复软件进行备份恢复;

    高可用:通过共享存储和双机热备的方式,可以实现SQL Server数据库的高可用;

    (5) SQL Server数据库集群采用共存存储的方式,通过硬件垂直升级来对数据库集群进行扩展;

  1. 适用场景:

    大多数OLTP场景(与微软体系配合)。

  2. 选择注意:

    SQL Server与微软技术体系结合比较紧密,绝大多数工作,都是通过图形界面完成,对于习惯使用命令行的DBA可能会有不习惯;

    SQL server对双引号,大小写,元信息的管理和处理方式,与其他数据库很不相同,需要注意;

    使用SQL Server满足OLTP业务,会有比较好的效果,但对于大数据量的OLAP业务,最好还是选用专门的OLAP架构,不要在同一个SQL Server实例上混用OLTP和OLAP业务;

    SQL server属于商业软件,需要注意版权和licence授权费用.

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

  1. 定位

    商业、多平台、关系型数据库。

    功能最强大、最复杂、市场占比最高的商业数据库。

  1. 特点

    (1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据;

    (2)Oracle单实例数据库部署相对容易,但Oracle RAC集群环境,部署的步骤和依赖条件都比较多;

    (3)通常使用命令行工具,进行各种数据库的管理,通常也可以用shell脚本和python脚本提高Oracle数据库管理效率;各种管理功能,都比较强大;

    (4)Oracle官方有比较全面的监控工具,常用的第三方监控平台,如zabbix,cacti,lepus等都有对Oracle数据库的各项指标的完善监控;

    (5)支持冷备份和热备份,可以用 exp/imp , expdp/impdp等进行逻辑备份和恢复,可以使用强大的RMAN工具进行专业的物理热备份和恢复;

    (6)Oracle数据库的高可用架构,可以用第三方双机热备软件,结合Oracle单实例实现;可以使用Oracle Dataguard,实现master和standby的备份;可以使用 Oracle RAC集群实现实例级别的高可用和负载均衡,使用ASM实现存储级别的高可用;

    (7)由于Oracle集群采用共享存储的方式,一般只能通过垂直硬件升级进行升级;

    3、适用场景:

    绝大多数OLTP场景,部分OLAP。

    4、选择注意:

    Oracle从架构到运维,可以说是最难的数据库,学习和使用难度较高。

PostgreSQL

PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。

  1. 定位

    开源、多平台、关系型数据库,功能最强大的开源数据库。

  1. 特点

    (1)支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,以二维表方式组织数据;

    (2)postgresql需要先准备好Python等环境,然后编译安装软件,初始化数据库,启动实例,整个部署过程相对比较清晰;

    (3)postgresql数据库可以使用命令行方式进行管理,也可以通过pgadmin图形工具进行管理;各种管理功能,都比较强大;

    (4) 可以在命令行中查看各种性能视图和状态视图;相对其他其他数据库,并没有太好的图形监控工具和平台;

    (5)支持冷备份和热备份,可以用 COPY命令进行逻辑导出和导入;用pgdump和pgrestore进行物理备份和恢复;

    (6)postgresql 官方支持 master-standby复制;也可以用Slony-I第三方组件进行数据库同步;

    (7)postgresql可以通过修改源码实现的postgres-XC实现水平扩展;

  1. 适用场景

    绝大多数OLTP场景,部分OLAP;

    适合目前互联网需要的一些信息,比如地理位置信息处理;

    以postgresql作为底层数据库的greenplum数据仓库,是主流的MPP数据仓库;

    基于postgresql的TimeScaleDB,是目前比较火的时序数据库之一。

  1. 选择注意

    Postgresql的架构、使用难度、功能性介于Oracle数据库和MySQL数据库之间,但因其开源的推动,各方面也有不错的发展;

    Postgresql目前还没有比较主流和好用的监控平台,这是postgresql数据库目前存在的一个不足。

Sybase数据库

美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。

Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。

Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。

DB2

DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。

DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。

DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

Access

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。

MS ACCESS以它自己的格式将数据存储在基于Access Jet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。

软件开发人员和数据架构师可以使用Microsoft Access开发应用软件,“高级用户”可以使用它来构建软件应用程序。和其他办公应用程序一样,ACCESS支持Visual Basic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件。可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。

  1. 完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。

  2. 拥有强大的数据处理功能。

  3. 可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。

  4. 作为Office套件的一部分,可以与Office集成,实现无缝连接。

  5. 能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。