Skip to content

TiDB - 分布式 NewSQL 数据库

TiDB 是一个开源的分布式 NewSQL 数据库,支持水平扩展、强一致性事务和 MySQL 协议兼容。

目录结构

模块内容
部署TiUP 部署、Docker 部署
建表设计主键设计、索引、分区表
查询优化执行计划、热点问题、Hints
HTAPTiFlash、混合负载处理
FAQ常见问题
面试题核心面试考点

核心特性

特性说明
水平扩展自动分片,理论无上限
强一致性分布式事务,ACID
MySQL 兼容兼容 MySQL 5.7 协议
HTAPTiFlash 列存,支持混合负载
自动调度PD 智能调度,负载均衡

架构概览

┌─────────────────────────────────────┐
│         客户端应用                    │
└──────────────┬──────────────────────┘
               │ MySQL协议
┌──────────────▼──────────────────────┐
│    TiDB Server (无状态SQL层)         │
└──────────────┬──────────────────────┘

   ┌───────────┼───────────┐
   │           │           │
┌──▼──┐   ┌────▼────┐  ┌──▼──┐
│ PD  │   │  TiKV   │  │TiFlash│
│调度层│   │ KV存储  │  │列存储 │
└─────┘   └─────────┘  └──────┘

组件说明

组件作用
TiDB Server无状态 SQL 层,处理请求
PD元信息管理、时间戳分配、调度
TiKV行式存储,Raft 副本
TiFlash列式存储,OLAP 加速

快速部署

bash
# 安装 TiUP
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

# 启动测试集群
tiup playground

# 连接
mysql -h 127.0.0.1 -P 4000 -u root

与 MySQL 对比

特性TiDBMySQL
扩展性水平扩展垂直扩展
高可用原生支持需额外方案
事务分布式单机
容量PB 级TB 级
分片自动手动分库分表

学习资源

正在精进