走出 《MySQL》 来看看这些数据库
从数据库的种类来介绍目前比较流行的一些数据库,适合拓宽一些基础认知。 会着重介绍一下一些关系型数据库。
现在的数据库可以分为以下几种:
- 关系型数据库(RDBMS):采用关系模型来存储数据,常见的关系型数据库有 MySQL、Oracle、Microsoft SQL Server、PostgreSQL 等。
- 非关系型数据库(NoSQL):不使用关系模型来存储数据,而是使用文档、键值对、图形等方式来组织数据。常见的非关系型数据库有 MongoDB、Redis、Cassandra、Couchbase 等。
- 新SQL数据库:结合了关系型数据库和非关系型数据库的优点,具有传统关系型数据库的可靠性和 ACID 特性,又能支持分布式部署和处理大规模数据的能力。常见的新SQL数据库有 TiDB、CockroachDB、Spanner 等。
- 数据仓库:专门用于处理大规模数据的数据库系统,具有高度可扩展性和并行处理能力,能够支持复杂的分析查询。常见的数据仓库有 Amazon Redshift、Snowflake、Azure Synapse Analytics 等。
- 内存数据库:将数据存储在内存中,具有非常高的读写性能和低延迟,适用于高并发的事务处理和实时查询。常见的内存数据库有 Redis、Memcached、VoltDB 等。
- 图数据库:专门用于处理图形数据的数据库系统,能够高效地管理和查询大规模的关系网络,常见的图数据库有 Neo4j、ArangoDB、OrientDB 等。
- 混合型数据库:结合了多种不同类型数据库的优点,能够灵活地应对不同的数据处理需求。常见的混合型数据库有 Oracle Database Appliance、SQL Server Big Data Clusters 等。
对于不同类型的数据库的部分例举(注意:这里笔者只例举了部分出名的,实际上有很多):
数据库类型 | 数据库名称 |
---|---|
关系型数据库 | Oracle |
MySQL | |
Microsoft SQL Server | |
PostgreSQL | |
IBM DB2 | |
SAP Sybase ASE | |
Teradata | |
Informix | |
Amazon Aurora | |
SQLite | |
非关系型数据库 | MongoDB |
Cassandra | |
Redis | |
Couchbase | |
HBase | |
Neo4j | |
Apache Druid | |
列存储数据库 | HBase |
Apache Cassandra | |
Vertica | |
Google Bigtable | |
ScyllaDB | |
文档数据库 | MongoDB |
Couchbase | |
Apache CouchDB | |
RethinkDB | |
图数据库 | Neo4j |
ArangoDB | |
OrientDB | |
JanusGraph | |
Amazon Neptune | |
时序数据库 | InfluxDB |
TimescaleDB | |
OpenTSDB | |
KairosDB | |
Amazon Timestream | |
数据仓库 | Teradata |
Amazon Redshift | |
Snowflake | |
Google BigQuery | |
Microsoft Azure Synapse Analytics | |
Oracle Exadata | |
Vertica | |
IBM Netezza | |
图形数据库 | Neo4j |
ArangoDB | |
OrientDB | |
JanusGraph | |
Amazon Neptune | |
搜索引擎 | Elasticsearch |
Solr | |
Amazon CloudSearch | |
Azure Search | |
Google Cloud Search | |
新SQL数据库 | CockroachDB |
TiDB | |
NuoDB | |
MemSQL | |
Google Cloud Spanner | |
Amazon Aurora | |
YugabyteDB | |
FaunaDB | |
FoundationDB | |
Azure SQL Database |
国内目前比较流行的关系型数据库:
数据库 | 应用场景 | 特点 |
---|---|---|
PolarDB | 大型互联网应用、金融、物流、电商等 | 高可用、高扩展性、强一致性、支持存储过程、高性能、自动化运维 |
达梦数据库 | 政务、金融、电信、制造等领域 | 支持多种数据类型、多版本并发控制、强数据完整性、高可用性、自动化管理 |
OceanBase | 大型互联网应用、金融、电商、物流等 | 分布式架构、高性能、高可用性、扩展性好、支持 OLAP、多语言支持 |
MySQL | 适用于中小型网站、小型企业 | 开源、免费、高可用性、易学易用、社区活跃、支持多种语言 |
Oracle | 适用于企业级应用、大型网站等 | 高可用性、安全、性能优秀、稳定可靠、功能全面、适合海量数据处理 |
DB2 | 适用于企业级应用、大型机构等 | 高可用性、高性能、稳定性强、支持多种数据类型和应用、易于管理 |
国内目前比较流行的关系型数据库优缺点和性能对比:
数据库 | 实现上的特点 | 性能上的特点 | 优点 | 缺点 |
---|---|---|---|---|
PolarDB | 基于共享存储架构,支持主从架构和多副本同步技术;使用 Paxos 算法保证强一致性 | 具有较高的性能和吞吐量,能够满足高并发场景下的需求;支持在线扩容和自动负载均衡 | 高可用性、高扩展性、强一致性、支持存储过程、高性能、自动化运维 | 价格相对较高,不适合中小型企业使用;一些高级功能需要额外付费 |
达梦数据库 | 采用自主研发的 VSD 引擎,实现了多版本并发控制、事务管理、数据完整性等核心功能;支持多种分布式架构 | 性能稳定,支持多种数据类型和应用,可以处理海量数据 | 多版本并发控制、强数据完整性、高可用性、自动化管理 | 安全性需要加强,功能相对其他数据库产品略逊一筹 |
OceanBase | 采用分布式架构,使用 SQL 语言,支持 OLAP 等多种应用场景;自主研发了分布式事务引擎和 SQL 执行引擎 | 具有较高的性能和扩展性,支持在线扩容和自动负载均衡;支持海量数据处理 | 分布式架构、高性能、高可用性、扩展性好、支持 OLAP、多语言支持 | 部署和配置相对复杂,对硬件环境有一定的要求,不适合中小型企业使用 |
MySQL | 使用了多种存储引擎,如 InnoDB、MyISAM 等;采用了分布式架构,支持主从架构和多副本同步技术 | 性能稳定,支持多种语言,适合中小型网站和小型企业使用;开源免费 | 开源、免费、高可用性、易学易用、社区活跃、支持多种语言 | 不支持分布式事务,对于高并发和大数据量的处理有一定限制 |
Oracle | 采用了多种技术,如分区表、数据泵、高可用性、在线重组等;支持多种分布式架构 | 性能优秀,能够处理海量数据;稳定可靠 | 支持高可用性、安全性、扩展性,功能强大、支持多种语言、有大量的学习资料和社区支持 | 价格相对较高,需要一定的技术水平才能使用和维护 |
DB2 | 支持多种分布式架构和存储引擎,如 Q Replication 和 SQL Replication;采用分区表和分片等技术,支持海量数据存储和处理 | 高可用性,高性能,支持事务处理和分布式环境下的数据管理 | 支持高可用性、海量数据存储和处理、多语言支持、易学易用、可靠稳定 | 价格较高,需要一定的技术水平才能使用和维护 |
目前信创过程中,金融行业使用达梦做替换的比较多。
MariaDB和MySQL
最后,笔者简单介绍下MariaDB。MariaDB是一种开源的关系型数据库管理系统,它是由MySQL的原始开发者之一创建的,旨在保持与MySQL兼容并提供更好的性能和功能。
MariaDB数据库的一些特点和优势:
- 高性能:MariaDB具有优化的存储引擎,包括Aria、MyISAM、XtraDB、InnoDB等。其中,InnoDB引擎提供了高级事务支持和行级锁定,可以提供更高的性能和可靠性。
- 兼容性:MariaDB被设计为与MySQL兼容,因此可以使用与MySQL相同的SQL语法和API,同时支持MySQL的协议和驱动程序,使得迁移到MariaDB更加容易。
- 安全性:MariaDB提供了各种安全功能,例如数据加密、访问控制、SSL/TLS支持等,使得数据更加安全可靠。
- 可扩展性:MariaDB具有分布式性能,可以在多个服务器之间水平扩展,同时支持垂直扩展,可以在单个服务器上增加硬件资源。
- 开放源代码:MariaDB是开放源代码的数据库系统,用户可以自由修改和分发它,因此可以为用户带来更高的自由度和可定制性。
- 社区支持:MariaDB有一个庞大的社区,它提供了大量的文档、工具和支持,可以为用户提供帮助和支持。
MariaDB是一种高性能、兼容性好、安全可靠、可扩展的开源关系型数据库管理系统,可以广泛应用于Web应用程序、企业级数据管理系统等领域。
MariaDB和MySQL的一些优缺点的比较:
优点 | MariaDB | MySQL |
---|---|---|
性能 | √ | √ |
兼容性 | √ | √ |
安全性 | √ | √ |
可扩展性 | √ | √ |
开放源代码 | √ | √ |
社区支持 | √ | √ |
具有列存储引擎 | √ | × |
具有JSON数据类型 | √ | × |
具有虚拟列 | √ | × |
具有多源复制 | √ | × |
性能优化插件 | √ | × |
缺点 | MariaDB | MySQL |
---|---|---|
市场份额 | × | √ |
生态系统 | × | √ |
历史问题 | × | √ |
主流支持 | × | √ |
从上表可以看出,MariaDB和MySQL在大多数方面都具有相似的优点和特点,例如性能、兼容性、安全性、可扩展性、开放源代码和社区支持等。然而,MariaDB具有一些MySQL没有的优点,例如列存储引擎、JSON数据类型、虚拟列和多源复制等功能。另外,MariaDB还提供了性能优化插件,可以帮助用户进一步提高性能。但是,相比MySQL,MariaDB的市场份额和生态系统相对较小,同时,由于MariaDB是相对较新的数据库系统,因此可能存在一些历史问题。此外,由于MySQL是主流数据库系统之一,因此在主流支持方面,MySQL具有一定的优势。
转载自:https://juejin.cn/post/7220042622526029880