TiDB基本简介
一、TiDB整体架构
与传统的单机数据库相比,TiDB具有以下优势:
- 纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
- 支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景下可以直接替换MySQL
- 默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
- 支持ACID事务,对于一些有强一致需求的场景友好,例如:银行转账
- 具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
二、TiDB架构图
在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。对应的架构图如下:

1、TiDB Server:SQL层,对外暴露MySQL协议的连接endpoint,负责接受客户端的链接,执行SQL解析和优化,最终生成分布式执行计划
TiDB层本身是无状态的,实践中可以启动多个TiDB实例,通过负载均衡组件(如LVS、HAProxy、或F5)对外提供统一的接入地址,客户端的
连接可以均匀的分摊在多个TiDB实例上以达到负载均衡的效果。TiDB Server本身并不存储数据,只是解析SQL,将实际的数据读取请求转发给底层的存储节点TiKV(或TiFlash)
2、PD(Placement Driver) Server:整个TiDB集群的元信息管理模块,负责存储每个TiKV节点实时的数据分布情况和集群的整体拓扑结构,提供TiDB Dashboard管控界面,并为
分布式事务分配事务ID。PD不仅存储元信息,同时还会根据TiKV节点实时上报的数据分布状态,下发数据调度命令给具体的TiKV节点,可以说是整个集群的“大脑”。此外,PD本身
也是由至少3个节点构成,拥有高可用的能力。建议部署奇数个PD节点。
3、存储节点
- TiKV Server:负责存储数据,从外部看TiKV是一个分布式的提供事务的Key-Value存储引擎。存储数据的基本单位是Region,每个Region负责存储一个Key Range(从StartKey到
EndKey的左闭右开区间)的数据,每个TiKV节点会负责多个Region。TiKV的API在KV键值对层面提供对分布式事务的原生支持,默认提供了SI(Snampshot Isolation)的隔离级别,这也是
TiDB在SQL层面支持分布式事务的核心。TiDB的SQL层做完SQL解析后,会将SQL的执行计划转换为对TiKV API的实际调用。所以,数据都存储在TiKV中。另外,TiKV中的数据都会自动
维护多副本(默认为三副本),天然支持高可用和自动故障转移。
- TiFlash:TiFlash是一类特殊的存储节点。和普通TiKV节点不一样的是,在TiFlash内部,数据是以列式的形式进行存储,重要的功能是为分析型的场景加速。
TiDB基本简介的更多相关文章
- 遇见 TiDB
遇见 TiDB 文章来源:企鹅号 - 塔塔驿站 最近TiDB掀起了一波分布式数据库的热潮,公司也在着手准备TiDB的落地工作,前几天也参与了几场公司针对TiDB的分享会,下面我们了解一下关于TiDB. ...
- TIDB数据集群部署
TIDB 数据库集群 一.TiDB数据介绍 1.1.TiDB数据简介 TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytic ...
- TiDB集群安装主要操作
TiDB集群安装主要操作 参考资料:https://www.cnblogs.com/plyx/archive/2018/12/21/10158615.html 一.TiDB数据简介 TiDB 是 Pi ...
- 开源top100
1.SwitchyOmega 项目简介:SwitchyOmega 是 SwitchySharp 的新版本.这是一个 Chrome 浏览器用来切换不同代理的插件.SwitchyOmega 初次安装时会检 ...
- 【TIDB】1、TiDb简介
一 TiDb简介 TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 HTAP (Hybrid Transactional and Analyti ...
- TIDB1 —— TiDB简介
TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性. TiDB 具备如下核心特点: 1 高度兼容 MySQL 大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB, ...
- TIDB简介
摘自https://pingcap.com/docs-cn/ TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical P ...
- TiDB:支持 MySQL 协议的分布式数据库解决方案
[编者按]TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库.其灵感来自于 Google 的 F1,TiDB 支持包括传统 RDBMS 和 NoSQL 的特性.在国内 ITOM 管 ...
- TiDB
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb.其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB ...
随机推荐
- Album++:分布式事务专辑-基础概念
(一)基础概念:↓ ↓ ↓ 1.1)什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,"一手交钱,一手交货"就是一个事务的例子,交钱和交货必 须全部成功, 事务才算成功, ...
- CSS设置height为100%无效的情况
CSS设置height为100%无效的情况 笔者是小白,不是特别懂前端.今天写一个静态的HTML页面,然后想要一个div占据页面的100%,但是尝试了很多办法都没有实现,不知道什么原因. 后来取百度搜 ...
- 为了让她学画画——熬夜用canvas实现了一个画板
前言 大家好,我是Fly, canvas真是个强大的东西,每天沉迷这个无法自拔, 可以做游戏,可以对图片处理,后面会给大家分享一篇,canvas实现两张图片找不同的功能, 听着是不是挺有意思的, 有点 ...
- 创建Rdemo项目
1.创建项目工作目录 mkdir /home/sesa464509/R/demo cd /home/sesa464509/R/demo vi sayHello.R ------------------ ...
- SpringBoot 无法注入 service 的 bean
错误信息 Description: Field areaService in com.imooc.demo.web.AreaController required a bean of type 'co ...
- 学习mybatis框架>从零开始学JAVA
目录 学习mybatis框架 mybatis框架的介绍 什么是mybatis框架 为什么要使用mybatis框架 mybatis的优点 Mybatis框架环境搭建 去官网下载jar包 创建一个普通的j ...
- SpringCloud升级之路2020.0.x版-7.从Bean到SpringCloud
本系列为之前系列的整理重启版,随着项目的发展以及项目中的使用,之前系列里面很多东西发生了变化,并且还有一些东西之前系列并没有提到,所以重启这个系列重新整理下,欢迎各位留言交流,谢谢!~ 在理解 Spr ...
- 刷到血赚!字节跳动内部出品:722页Android开发《360°全方面性能调优》学习手册首次外放,附项目实战!
前言 我们平时在使用软件的过程中是不是遇到过这样的情况:"这个 app 怎么还没下载完!"."太卡了吧!"."图片怎么还没加载出来!".&q ...
- EL表达式和JSTL标签
什么是 EL 表达式,EL 表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 ...
- Java编程中经典语句收录
1.spring系列:约定优于配置(习惯大于配置): 2.Java:一次编译,处处运行 3.Unix:没有消息就是好消息