目录
前言:
数据库(Database, DB)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合,是按照一定的逻辑结构组织、存储、管理数据的大容量电子文件柜。
数据库管理系统(Database Management System, DBMS)是对数据库进行统一管理和控制的大型软件,主要由内核组件集和驱动组件构成,其中内核组件集按照功能模块划分为管理组件、存储组件、计算组件和网络组件。
当前数据库生态可以大致分类三类:
一是传统商业数据库
以 Oracle 为代表,其在 40 余年时间里所创造的数据库帝国已拥有了极其完善的生态;
二是开源数据库
以 MySQL、PostgreSQL 为代表,遍布全球的社区组织形成了强大的生态系统,也形成了若干分支,成就了诸多商业数据库产品;
第三则是国内新兴数据库
以 TiDB、OceanBase、PolarDB 等为代表,具备较强的自研能力,但在生态方面较前两类薄弱很多。如何快速建立并形成符合自身利益的生态呢?开源无疑是一个绝佳的选择。
看一下前不久的一份表单,不难发现,一个词足以成为关注的焦点,那便是“开源”。
具体来看本期榜单中十强的排名和分数情况,以高达 64.75 分的单月涨幅,跳升两位来到第 6 名,将同门大哥 GaussDB 和鹅厂的 TDSQL 分别挤下一位;
其次,PolarDB 不甘示弱,虽然排名没有变化,但 55.27 分的增长足以让其稳守三强席位,并将与第四名达梦的分差从上个月的 35 分拉大到如今的 132 分;
最后,OceanBase 的微涨和 TiDB 的下降使两者间的分差缩小到接近 100 分。这两个类型相似、适用场景有较大重叠、同以金融行业为切入点的热门数据库,想必会在今年下半年为榜首之争展开一番较量。
Oracle简介:
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。
Oracle数据库特点如下:
1.完整的数据管理功能:
1).数据的大量性
2).数据的保存的持久性
3).数据的共享性
4).数据的可靠性
2.开放性:
Oracle能在所有主流平台上运行(包括Windows),完全支持所有的工业标准,采用完全开放策略,可以使客户选择最适合的解决方案,对开发商全力支持。
3.可伸缩性,并行性:
Oracle的并行服务器通过使一组结点共享同一簇中的工作来扩展Windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
4.使用性:
Oracle具有相当长时间的开发经验,完全向下兼容。得到广泛的认可与应用,完全没有风险。
5.支持分布式数据处理:
Oracle将分布在不同物理位置的数据用通信网络连接起来,在分布式数据库管理系统的控制下,组成一个逻辑上统一的数据库,完成数据处理任务。
6.安全性:
Oracle获得了最高认证级别的ISO标准认证。它提供多层安全性,包括用于评估风险、防止未授权的数据泄露、检测和报告数据库活动,以及通过数据驱动的安全性在数据库中实施数据访问控制的控制。
Oracle数据库之所以能够经久不衰,除了它自身不断开拓创新之外,其独有的特点和优势也发挥了至关重要的作用。我们熟练掌握Oracle数据库的特点,把Oracle和其他数据库区分开来,才能最大程度上发挥出Oracle数据库的优势。
MySQL简介:
MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
MySQL特性:
使用 C 和 C++ 编写,并使用了多种编译器进行测试,保证源代码的可移植性。
支持 AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows 等多种操作系统。
为多种编程语言提供了 API。这些编程语言包括 C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 等。
支持多线程,充分利用 CPU 资源,支持多用户。
优化的 SQL 查询算法,有效地提高查询速度。
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。
提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
提供用于管理、检查、优化数据库操作的管理工具。
可以处理拥有上千万条记录的大型数据库。
PostgreSQL简介:
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。
PostgreSQL特性:
PostgreSQL 是一个*的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。
PostgreSQL 不寻常的名字导致一些读者停下来尝试拼读它,特别是那些把SQL拼读为"sequel"的人。PostgreSQL 开发者把它拼读为 "post-gress-Q-L"。它也经常被简略念为 "postgres"。
事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的*软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种*软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为*软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。
从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。
TiDB简介:
TiDB 是 PingCAP [1] 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
TiDB特点:
一键水平扩容或者缩容得益于 TiDB 存储计算分离的架构的设计,可按需对计算、存储分别进行在线扩容或者缩容,扩容或者缩容过程中对应用运维人员透明。
金融级高可用数据采用多副本存储,数据副本通过 Multi-Raft 协议同步事务日志,多数派写入成功事务才能提交,确保数据强一致性且少数副本发生故障时不影响数据的可用性。可按需配置副本地理位置、副本数量等策略满足不同容灾级别的要求。
实时 HTAP提供行存储引擎 TiKV、列存储引擎 TiFlash 两款存储引擎,TiFlash 通过 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保行存储引擎 TiKV 和列存储引擎 TiFlash 之间的数据强一致。TiKV、TiFlash 可按需部署在不同的机器,解决 HTAP 资源隔离的问题。
云原生的分布式数据库专为云而设计的分布式数据库,通过 TiDB Operator 可在公有云、私有云、混合云中实现部署工具化、自动化。
兼容 MySQL 5.7 协议和 MySQL 生态兼容 MySQL 5.7 协议、MySQL 常用的功能、MySQL 生态,应用无需或者修改少量代码即可从 MySQL 迁移到 TiDB。提供丰富的数据迁移工具帮助应用便捷完成数据迁移。
OceanBase简介:
OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库 ,始创于2010年。已连续9年平稳支撑双11, 创新推出“三地五中心”城市级容灾新标准 ,是一个在TPC-C和TPC-H测试上都刷新了世界纪录的国产原生分布式数据库。 产品采用自研的一体化架构,兼顾分布式架构的扩展性与集中式架构的性能优势,用一套引擎同时支持TP和AP的混合负载, 具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特点,助力金融、*、运营商、零售、互联网等多个行业的客户实现核心系统升级。
OceanBase详细介绍:
1.OceanBase公有云
OceanBase 公有云(OceanBase Cloud),是构建在阿里云、AWS等全球主流公有云基础设施上 [48] ,基于完全自主研发的原生分布式数据库,提供弹性扩展、高性能、主流兼容的数据库云服务。为客户在云上提供服务、弹性、监控、诊断、开发、迁移、备份、恢复的端到端数据库服务化解决方案 [46] 。
2.OceanBase数据库一体机
OceanBase数据库一体机(OceanBase Data Machine,ODM)是基于OceanBase原生分布式数据库和可信硬件打造的软硬一体化产品,针对数据库业务软硬件深度性能调优,提供弹性扩展、高可用、高可靠、高安全、高性价比、智能管控和一站式快速交付部署能力。ODM支持全机柜和半机柜灵活配置,可选机架、交换机、硬件配件、监控软件等,提供一体化运维支撑和售后服务。 [46]
3.OceanBase 运维管理工具
OceanBase运维管理工具(OceanBase Control Platform,OCP)是一款为OceanBase数据库打造的企业级管理平台,兼容OceanBase主流版本。OCP提供对OceanBase集群的图形化管理能力,包括数据库组件及相关资源的全生命周期管理、监控告警,性能诊断、故障恢复、备份恢复等,旨在协助客户更加高效地管理和运维OceanBase数据库,降低企业的IT运维成本和用户的学习成本。 [46]
4.OceanBase 开发者工具
OceanBase开发者工具 [46] (OceanBase Developer Center, ODC)作为OceanBase数据库量身打造的企业级数据库开发平台,旨在帮助企业安全、高效的使用数据库。可通过ODC 创建和管理数据库中的表、视图等10余种数据库对象。基于WebSQL,ODC提供了SQL 窗口和匿名块窗口作为数据库开发者开发和诊断SQL和PL/SQL的工作区。还可为指定角色分配对应资源及该资源的访问权限,企业内不同角色间的开发协作亦会变得简单可控 [46] 。
5.OceanBase迁移工具
OceanBase数据迁移工具(OceanBase Migration Service, OMS) 是OceanBase数据库一站式数据传输和同步的产品。它支持多种关系型数据库、消息队列与OceanBase 数据库之间的数据复制,是集数据迁移、实时数据同步和增量数据订阅于一体的数据传输服务 ,OMS帮助用户低风险、低成本、高效率的实现OceanBase的数据流通,助力构建安全,稳定、高效的数据复制架构。 [46]
PolarDB简介:
PolarDB是阿里云自主研发的新一代关系型云原生数据库,既拥有分布式设计的低成本优势,又具有集中式的易用性。 [1]
PolarDB采用存储计算分离、软硬一体化设计,满足大规模应用场景需求。
PolarDB特点:
PolarDB 实现了计算节点及存储节点的分离,提供即时生效的可扩展能力和运维能力。 [1]
简单易用:全面兼容开源数据库MySQL 5.6。 [4]
高性能:使用RDMA高速网络和分布式计算节点集群,性能最高能达到MySQL的6倍。 [5]
大容量存储:支持单库容量扩展至上百TB级别,计算引擎以及存储都有秒级扩展能力。 [4]
快速备份:同一个实例的所有节点都访问存储节点上的同一份数据,数据备份耗时实现秒级响应。 [5]
一键迁移:实现一键快速迁移,并提供云上的完整生态服务。 [6]