1.集中式数据库的优点
数据一致性强 
安全性和权限管理方便 
性能表现好 

缺点:容易发生单点故障,单台数据库承受的压力有限。
为了解决高并发问题,一般会在系统中引入分布式缓存。
分布式缓存的作用是将最新的数据从数据库中读取出来,放在自己的内存中,分布式缓存服务器是一个集群,会有多分数据的备份,
这样当大量并发访问涌入的时候,分布式缓存可以帮助抵挡数据库这些访问,数据库只提供数据给分布式缓存。常见的 
分布式缓存:Memcached, Redis; 

这种架构在写方面依然存在性能瓶颈。当写入流量大时,数据库的压力非常大。系统可能会出现故障。

2.主从架构的优点
这种架构的优点是避免了单体数据库架构的单点故障,同时备库还可以提供读扩展能力。
缺点是对于写操作的压力没有帮助。这种是使用最为广泛的架构。

MySQL MGR 和 Percona XtraDB Cluster 这种架构的一个改进之处是避免了之前数据复制的异步方式而
支持同步复制。甚至做到多点写入和读取,但是存储数据量依然受到单体数据库的限制。
当数据量达到一定程度后,读写性能明显下降。

3.Shared-Everything 架构 
例如Oracle的RAC架构。这种架构的优点是计算层分离后具有高可用性和横向扩展能力。当某个实例出现问题后,
依然有其他实例可以负责处理应用的SQL请求,而且如果有更大量的并发和计算请求到来,可以通过增加数据库实例 
提升计算能力。由于只有一份存储,IO读取能力并未得到横向扩展。当时通过ASM磁盘管理技术将磁盘条带化之后 
读取能力明显提升。但是整个系统的架构还是存在性能瓶颈。

分析型数据库不擅长少数数据的变更,擅长大量数据的全扫描。分析型数据往往按照列组织数据例如teradata,
ClickHouse;

4.基于分库分表的分布式架构 
这种架构的出现是为了解决集中式数据库单表数据量过大。(比如单表超过上亿行。如果超过10亿行,那么查询和修改 
都会有性能瓶颈。)
这种分库分表的架构解决了集中式数据库的单表数据量过大后查询和写入性能下降的问题。也带来很多问题:
SQL语句必须经过分表分库中间件下发,读写效率会打折。分布式事务无法保证原子性。统计分析时,
多个数据库中数据集的时间一致性无法保证。数据的聚合,排序等统计操作必须在中间件中进行。

5.分布式数据库  
分布式数据库通过将数据分不到多个节点上,提供了更强的可扩展性,容错性和性能。
它适用于大规模和高并发访问的场景,并通过数据复制和分片等技术来提高数据的可用性和可靠性。

TIDB数据库是一个开源的分布式关系型数据库,用于解决传统关系型数据库在大规模
数据处理和 高并发场景下的性能问题。

TIDB数据库的5个特点。
(1)分布式架构 
TIDB采用水平分片存储数据,并将数据分布到多个节点上,它可以方便地扩展系统的处理能力,
根据负载情况增加或减少节点数量,以适应不同规模的数据和高并发访问需求。
(2)高可用 
TIDB使用raft 算法实现数据的复制和故障转移,确保系统的高可用性。
当某个节点宕机时,系统会自动选举新的读写节点,保持服务连续性。
(3)强一致性 
TiDB通过Raft算法实现数据的强一致性,写入完成后,TiDB会等待多数据节点的确认,然后才返回成功响应,
确保数据的一致性。
(4)SQL兼容性 
TIDB兼容MySQL协议,可以使用常见的MySQL客户端工具和驱动连接并操作数据库。MyQL应用可以无缝迁移到 
TIDB,减少了迁移成功。
(5)实时分析和联机事务处理 
TiDB支持联机分析处理和联机事务处理。它能够在同一个数据库中满足实时的数据分析和复杂查询的需求,
同时保持高可用性能的联机事务处理。
适用于大规模数据处理和高并发访问场景。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐