TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(Hybrid Transactional and Analytical Processing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(Online Transactional Processing)、OLAP(Online Analytical Processing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。
视频讲解如下:
https://www.bilibili.com/video/BV1FMXYYwEEB/?aid=114210981812...
在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:
通过使用TiKV存储引擎支持OLTP的应用场景,而通过使用TiFlash存储引擎支持OLAP的应用场景。在TiDB数据库分布式集群中主要包含三个子集群
1、存储集群:
该子集群负责数据的存储,其中又有行存引擎和列存引擎两种不同的存储方式:行存引擎指的是TiKV节点,它最终将数据存入底层的RocksDB中;列存引擎指的是TiFlash节点,它从TiKV节点中实时同步数据,这样的TiFlash节点也可以有多个。
2、调度集群:
调度集群中的每个节点叫做PD Instance,也叫做PD实例。存储集群会将数据存储位置等元信息存入调度集群中。
3、计算集群:
该子集群中可以包含多个TiDB Instance,即:TiDB实例。计算集群负责接收客户端发送的SQL语句,并访问PD集群获取数据存储位置和集群的时间戳TSO等信息,最终将SQL语句转换成Key-Value的键值操作,从而访问存储在存储集群中的数据
与传统的单机数据库相比,TiDB具有以下优势:
- 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
- 支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景下可以直接替换MySQL
- 默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
- 支持ACID事务,对于一些有强一致需求的场景友好,例如:银行转账
- 具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。