---
url: /tidb/introduction.md
description: TiDB 是由 PingCAP 开发的开源分布式 HTAP 数据库，兼容 MySQL 协议，支持水平扩展与强一致事务。
---

# 认识 TiDB

当一个 MySQL 单表的数据量从百万冲到千万、再到上亿，DBA 们开始频繁提起一个词：分库分表。然后噩梦就开始了——跨库 join 写不动、分布式事务难维护、扩容时数据迁移到半夜、某个分片突然变热点谁也说不清。

有没有一种可能，数据库自己就能横向扩展，而我们不用再去写一层又一层的中间件？

今天要聊的，就是来终结这个噩梦的开源分布式数据库——TiDB。

> "Ti" 代表 Titanium（钛），寓意像钛一样坚固又轻巧。

## 什么是 TiDB

TiDB（发音 "tie-dee-bee"）是由 PingCAP 开发的一款开源分布式 SQL 数据库，采用 Apache 2.0 协议开源。它最大的特点是**兼容 MySQL 协议**，同时在底层用分布式架构实现了水平扩展、强一致事务和实时分析（HTAP）能力。

说人话就是：它用起来像 MySQL，但能像大数据组件一样无限扩容，还能在同一套库里既做交易又做分析。

> TiDB 的存储引擎 TiKV，是云原生计算基金会（CNCF）的毕业项目，和 Kubernetes、etcd 同级。

## TiDB 的特点

* 开源免费，Apache 2.0 协议，企业级功能也全部开源
* 兼容 MySQL 协议与语法，大多数应用零代码改动即可迁移（兼容 MySQL 8.0）
* 纯分布式架构，计算与存储分离，可独立弹性扩缩容
* 支持 ACID 分布式事务，默认 Snapshot Isolation 隔离级别
* HTAP 能力，一套库同时跑交易（OLTP）和分析（OLAP），无需 ETL
* 多副本 + Raft 共识协议，自动故障转移，天然高可用
* 云原生，支持 Kubernetes 部署，也提供托管的 TiDB Cloud
* 原生支持向量检索，可直接服务 AI/RAG 场景

## TiDB 的技术架构

TiDB 把整个数据库拆成了四个各司其职的组件，彼此通过通信协作：

| 组件 | 职责 | 一句话理解 |
|---|---|---|
| **TiDB Server** | SQL 层 | 解析 SQL、优化执行计划，本身不存数据，无状态可水平扩展 |
| **PD (Placement Driver)** | 管控大脑 | 管理集群元信息、分配事务 ID、调度数据分布，至少 3 节点高可用 |
| **TiKV** | 行式存储 | 分布式事务型 KV 引擎，负责 OLTP，数据按 Region 分片，默认三副本 |
| **TiFlash** | 列式存储 | 实时从 TiKV 同步数据，列式存储加速 OLAP 分析查询 |

其中 TiKV 存交易数据（行存），TiFlash 存分析数据（列存），两者通过 Raft Learner 协议实时同步。这就是 TiDB 能做到"一套库既做交易又做分析"的关键——业务写入 TiKV，分析查询走 TiFlash，互不干扰，还不用搬数据。

> PD 被称为整个集群的"大脑"，少了它集群就不知道数据该往哪儿放。

## 哪些场景适合使用 TiDB

#### MySQL 扩容瓶颈

当单机 MySQL 扛不住数据量和并发，又不想引入复杂的分库分表中间件时，TiDB 几乎是最顺滑的升级路径——因为协议兼容，应用层基本不用改。Atlassian 把 750 多个分片化的 PostgreSQL 集群整合成了 16 个 TiDB 集群，单个集群撑住 300 万张表和 50 万并发连接。

#### 金融级强一致场景

银行转账、支付清算这类对数据一致性零容忍的场景，TiDB 的 ACID 事务和多副本 Raft 共识能直接满足。Plaid 用近两年时间把约 100 个服务从 Amazon Aurora 迁到了 TiDB，单服务切换停机从 5 分钟压到 60 秒以内。

#### 实时分析与 HTAP

不想再搭一套 Hive/Spark 做离线分析？TiFlash 让你直接在交易库上跑分析报表。Catalyst 借助 TiDB 的 HTAP 能力把查询响应提升了 60 倍，把对象数据和时间序列数据统一到了一个技术栈里。

#### 海量租户与 AI Agent 平台

这是 TiDB 近年发力的新方向。它支持原生向量检索，可以直接服务 RAG 和 AI Agent 场景。Manus 的 Agent 平台在 TiDB 上跑着 100 万+ 的数据库租户；Dify 把近 50 万个数据库容器整合成了一个 TiDB 实例；Kimi 的 K2.6 Agent 给每个用户站点秒级建库，撑住了 1000 万+ 租户。

> 从"分布式数据库"到"AI Agent 的数据库"，TiDB 这两年的定位明显往 AI 靠了。

## TiDB 初体验

想亲手摸一摸 TiDB？官方提供了 `tiup` 工具，一行命令就能在本地拉起一个测试集群。

1. 安装 tiup

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

2. 启动本地 playground

```bash
tiup playground v8.5.7
```

启动后会打印出各组件的连接信息，默认提供一个 MySQL 协议的连接地址。

3. 用 MySQL 客户端连上

```bash
mysql --host 127.0.0.1 --port 4000 -u root
```

注意 TiDB 默认端口是 4000。连上之后，熟悉的 `SHOW DATABASES;`、`CREATE TABLE;` 都能用——这就是 MySQL 兼容的丝滑之处。

> 如果不想本地装东西，TiDB Cloud 提供免费集群，注册即可在云端体验，不用绑卡。

## 进阶

TiDB 的迷人之处在于：它让"分布式数据库"这件事变得不那么吓人了。你不用一上来就啃 Raft 论文、不用懂 Region 怎么分裂，先用 MySQL 的习惯连上去用，等数据涨上来了，加几台机器就是了。

更多开源技术干货和学习资料，关注公众号「遇码」，领取专属福利。
