- 关于TiDB
- 快速启动
- 部署
- 迁移
- 维护
- 升级
- 规模
- 备份和恢复
- 使用BR工具(推荐)
- 配置时区
- 每日检查表
- 保持TiFlash
- 使用TiUP维护TiDB
- 修改配置在线
- 监控和警报
- 进行故障排除
- 性能调优
- 教程
- TiDB生态系统工具
- 参考
- 集群架构
- 主要监测指标
- 安全
- 特权
- SQL
- SQL语言结构和语法
- SQL语句
添加一列
添加索引
管理
管理员取消DDL
管理校验和表
管理员检查(表|索引)
Admin show DDL [job | queries]
修改数据库
改变指数
改变实例
ALTER TABLE
改变用户
分析表
备份
开始
改变列
提交
改变排水器
改变泵
创建全局|会话绑定
创建数据库
创建索引
创建角色
创建序列
创建表像
创建表
创建用户
创建视图
释放
删除
DESC
描述
做
下降(全球|会话)绑定
删除列
删除数据库
指数下降
下降的作用
下降序列
数据下降
删除表
减少用户
删除视图
执行
解释分析
解释
闪回表
冲洗的特权
冲洗状态
刷新表
<特权授予>
格兰特> <作用
插入
杀死[TIDB]
加载数据
加载数据
修改列
准备
恢复表
重命名索引
重命名表
取代
恢复
撤销<特权>
撤销> <作用
回滚
选择
设置默认角色
设置(名字|字符集)
设置密码
设置角色
设置事务
<变量(全局|会话)>
显示分析状态
显示(备份|恢复)
显示(全球|会话)绑定
显示内置命令
显示字符集
显示排序
显示[完整]列
显示配置
显示创建序列
显示创建表
显示创建用户
显示数据库
显示排水器状态
显示引擎
显示错误
显示[完整]字段
秀奖助金
显示指数(从|)
显示索引(从|)
显示键(从|)
显示主状态
显示插件
显示权限
显示[全部]PROCESSSLIST
显示配置文件
显示泵状态
显示模式
显示STATS_HEALTHY
显示STATS_HISTOGRAMS
显示STATS_META
显示状态
显示表NEXT_ROW_ID
显示表区域
显示表状态
显示表(完整)
显示全局|会话变量
显示警告
关闭
分地区
开始事务
表格
跟踪
截断
更新
使用
与
- 数据类型
- 函数和运算符
- 聚集索引
- 约束
- 生成的列
- SQL模式
- 交易
- 垃圾收集(GC)
- 的观点
- 分区
- 字符集和排序
- 系统表
mysql
- INFORMATION_SCHEMA
- 概述
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
整理
COLLATION_CHARACTER_SET_APPLICABILITY
列
DATA_LOCK_WAITS
DDL_JOBS
死锁
引擎
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
分区
PROCESSLIST
REFERENTIAL_CONSTRAINTS
图式
序列
SESSION_VARIABLES
SLOW_QUERY
统计数据
表
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
的观点
METRICS_SCHEMA
- 用户界面
- CLI
- 命令行标记
- 配置文件参数
- 系统变量
- 存储引擎
- TiUP
- 遥测
- 错误代码
- 表过滤器
- 根据拓扑标签调度副本
- 常见问题
- 术语表
- 发布说明
- 所有的版本
- v5.2
- v5.1
- v5.0
- v4.0
- v3.1
- v3.0
- v2.1
- v2.0
- v1.0
TiDB架构
与传统的独立数据库相比,TiDB具有以下优势:
- 具有灵活、弹性的可伸缩性的分布式架构。
- 完全兼容MySQL 5.7协议,MySQL的通用特性和语法。要将应用程序迁移到TiDB,在许多情况下不需要更改一行代码。
- 当少数副本发生故障时,支持自动故障转移的高可用性;对应用程序透明。
- 支持ACID事务,适用于银行转账等一致性要求较强的场景。
- 提供了丰富的系列数据迁移工具用于迁移、复制或备份数据。
作为一个分布式数据库,TiDB被设计成由多个组件组成。这些组件相互通信,形成一个完整的TiDB系统。架构如下:
TiDB服务器
TiDB服务器是一个无状态SQL层,它向外部公开MySQL协议的连接端点。TiDB服务器接收SQL请求,执行SQL解析和优化,并最终生成分布式执行计划。横向扩展,通过负载均衡组件(LVS、HAProxy、F5)对外提供统一接口。它不存储数据,仅用于计算和SQL分析,将实际的数据读请求发送到TiKV节点(或TiFlash节点)。
放置驱动(PD)服务器
PD服务器是整个集群的元数据管理组件。存储每个TiKV节点实时数据分布的元数据和整个TiDB集群的拓扑结构,提供TiDB Dashboard管理UI,为分布式事务分配事务id。PD服务器是整个TiDB集群的“大脑”,它不仅存储集群的元数据,还根据TiKV节点上报的数据分布状态,实时向具体的TiKV节点发送数据调度命令。另外,PD服务器至少由3个节点组成,具有高可用性。建议PD节点数量为奇数。
存储服务器
TiKV服务器
TiKV服务器负责存储数据。TiKV是一个分布式事务性键值存储引擎。地区是存储数据的基本单位。每个Region存储特定Key Range(从StartKey到EndKey的左闭右开区间)的数据。每个TiKV节点中存在多个region。TiKV api在键值对级别上提供对分布式事务的本机支持,默认情况下支持快照隔离级别隔离。这是TiDB在SQL级别支持分布式事务的核心。在处理SQL语句之后,TiDB服务器将SQL执行计划转换为对TiKV API的实际调用。因此,数据存储在TiKV中。TiKV中的所有数据都在多个副本中自动维护(默认情况下是三个副本),因此TiKV具有本机高可用性并支持自动故障转移。
TiFlash服务器
TiFlash Server是一种特殊类型的存储服务器。与普通的TiKV节点不同,TiFlash采用列存储数据,主要是为了加速分析处理。