分布式关系型数据库
1、支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) :OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)解决方案
2、无限制的水平扩容或者缩容
3、兼容MySQL ,支持 SQL,对外暴露 MySQL 的网络协议
4、高可用、强一致
5、支持ACID事务
1、整体架构
- PD (Placement Driver) Server
整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构
提供全局的分布式事务分配事务 ID
至少 3 个节点构成,拥有高可用的能力,建议部署奇数个 PD 节点
Raft协议,少数服从多数,CP强一致性
- TiDB Server
SQL 层,对外暴露 MySQL 协议的连接 endpoint,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。
无状态的,实践中可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址,
请求转发给底层的存储节点 TiKV(或 TiFlash)
- TiKV Server 存储节点
TiKV Server:负责存储数据,基本单位是 Region
提供了 SI (Snapshot Isolation) 的隔离级别
默认为三副本,天然支持高可用和自动故障转移。Raft协议
- TiFlash 存储节点
特殊的存储节点。在 TiFlash 内部,数据是以列式存储,主要的功能是为分析型的场景加速。
2、使用限制
仅支持SQL基本操作,不支持自定义函数、触发器 具体查看
避免使用表主键自增