TIDB 数据库架构概述
学习目标
- 题解数据库整体架构
- 了解 TiDB Server 、TiKV、TiFlash、和 PD 的主要功能
文章末尾获取笔记、视频资料,持续更新
体系架构
- 水平扩容或者缩容
- 金融级高可用
- 实时 HTAP
- 云原生的分布式数据库
- 兼容 MySql5.7 协议

TiDB 体系架构图
组件
TiDB Server
TiDB Server 是 TiDB 分布式数据库的 SQL 层,是整个系统的入口。
功能
处理客户端的连接
SQL语句的解析、编译、生成执行计划
生成sql语句,然后在TiKV 或者 TiFLASH上执行
关系型数据与 KV 的转化
TiKV 存的数据是键值对,将数据表转换为 KV 键值对
SQL语句执行(DDL语句)
执行 online DDL
垃圾回收(默认时间10分钟)

工作流程
客户端请求 ->
协议解析 ->
SQL 解析 ->
查询优化 ->
生成执行计划 ->
分布式执行 ->
返回结果
TiKV
TiKV是TiDB 分布式数据库的存储层
存储结构
Region (数据分片)
├── Leader
└── Followers (多个副本)
├── Follower 1
└── Follower 2
功能
- 数据持久化
- 副本的强一致性和高可用性
- MVCC (多版本并发控制)
- 分布式事务支持
- Coprocessor (算子下推)

核心组件
如上图所示
RocksDB:底层存储引擎
Raft:分布式一致性协议实现
MVCC:多版本并发控制
Transaction:分布式事务处理
关键特性
- 数据分片 (Region)
- 按 Key Range 进行数据分片
- 每个 Region 默认大小约 96MB到140MB
- 超过阈值会自动分裂(Split)
- 负载均衡时会自动调度
- 复制与一致性
- 采用 Multi-Raft 模型
- 通常采用 3 副本或 5 副本
- 强一致性保证
- 自动故障转移
TiFlash
它是 TiDB 的列式存储引擎,专门用于 OLAP 分析场景
功能
异步复制
一致性
列式存储提高分析查询效率
业务隔离
智能选择
也可以手动指定sql选择 TiKV 或者 TiFlash

TiFlash 架构图
PD
功能
- 整个集群TiKV的元数据存储
- 分配全局ID和事务ID
- 生成全局时间戳TSO
- 收集集群信息进行调度
- 提供 TiDB Dashboard 服务

测试

答案:
- B、F
- C
公众号回复 TIDB 获得笔记、视频

TIDB 数据库架构概述的更多相关文章
- asp.net core系列 30 EF管理数据库架构--必备知识 迁移
一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为 ...
- 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建
数据库基础概述 大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...
- 大型互联网架构概述 关于架构的架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE
大型互联网架构概述 目录 架构目标 典型实现 DNS CDN LB WEB APP SOA MQ CACHE STORAGE 本文旨在简单介绍大型互联网的架构和核心组件实现原理. 理论上讲,从安装配置 ...
- 1.1-1.5 flume架构概述及安装使用
一.flume架构概述 1.flume简介 Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和 ...
- Java生鲜电商平台-微服务架构概述
Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化 ...
- Httpd服务进阶知识-LAMP架构概述
Httpd服务进阶知识-LAMP架构概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LAMP架构概述 1>.什么是LAM(M)P架构 L: linux A: apa ...
- Mycat分布式数据库架构解决方案--Mycat的介绍
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 如果我 ...
- HDFS(Hadoop Distributed File System)的组件架构概述
1.hadoop1.x和hadoop2.x区别 2.组件介绍 HDFS架构概述1)NameNode(nn): 存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个 ...
- VS2012中数据库架构的比较
在进行项目进行开发或维护时,经常会改动使用的数据库,或增加.修改字段,或加表,改存储过程等,而且会出现多个类似的数据库同时在用(比如过个类似的项目,要使用稍有不同的数据库),这个时候就可能需要进行数据 ...
- SQL 修改数据库架构名
SQl 修改数据库架构名 declare @name sysname declare csr1 cursor for select TABLE_NAME from INFORMATION_SCHEMA ...
随机推荐
- openEuler创建和root一样的账号
1. 使用以下命令在 openEuler 操作系统的 root 用户下创建管理员用户: useradd -m -G root admin -m 表示创建用户的同时创建用户的主目录, -G 表示将用户添 ...
- docker-compose的nginx更换完ssl证书不起作用的完美解决方法
以Harbor为例,ssl证书更新后,docker-compose启动不起作用. 问题出在一句很重要的命令:./prepare 步骤:(Harbor样例) 1. cd /data/ssl 换ssl证 ...
- ThreeJs-07操控物体实现家具编辑器
本章节实现效果,通过gui快速添加场景,家具,并且可以快速设置家具实现一个编辑器效果 一.基础设置与物体添加列表 用之前做过的一个案例来改 首先不要这个模型,然后换个背景颜色,并且添加一个网格辅助器 ...
- iOS画中画
iOS 14 画中画 打开项目后台模式 创建视频播放源 let url = Bundle.main.url(forResource: "annie", withExtension: ...
- 解决SSH免密登录配置成功后不生效问题
今天配置SSH免密登录时,使用 ssh-keygen 命令成功生成了公钥和私钥,并且也执行了 ssh-copy-id 机器地址 将公钥添加到了服务器的authorized_keys文件中.紧接着用 s ...
- Qt开源作品18-无边框背景透明窗体
一.前言 用Qt来做无边框北京透明窗体非常简单,根本不需要用什么系统层的API来实现透明什么的,Qt本身提供了很多种设置窗体透明的方法,除了可以设置窗体的属性为透明以外,还可以设置透明度函数,以及qs ...
- FFmpeg命令行选项
如下内容取自官网文档"Documentation-ffmpeg"和"Documentation-ffmpeg-all" 1 帮助信息 如下选项适用于 ff 系列 ...
- Error:java: 无效的源发行版: 11
问题描述: 昨天下载 ali 的一个 demo.本地 idea 编译的时候报错. Error:java: 无效的源发行版: 11 具体原因: 项目的 jdk (Project SDK)版本 和项目的语 ...
- 小程序获取定位完整的封装js(uniapp)
1.小程序获取定位,首先需要在微信公众平台,申请getLocation接口(开发管理->接口设置) 2.在manifest.json打开源码视图,增加代码 "mp-weixin&quo ...
- 在OERV也可以玩MC(上)
最近发现一个比较有意思的事情,原来HMCL这个项目也移植到RISC-V上了,之前一直没有发现,因此在OERV(openEuler RISC-V的简称)玩MC也是可以的了.首先,HMCL是一款功能丰富的 ...