首页 / 时尚 / 正文

tidb(TiDB核心概念和入门)

放大字体  缩小字体 来源:中国好歌手 2026-04-15 13:31  浏览次数:7

TiDB 是一款开源的分布式关系型数据库,它巧妙地融合了传统关系型数据库的优势(如 SQL 支持、ACID 事务)和 NoSQL 数据库的可扩展性。下面这个表格汇总了它的核心构成部分,能帮你快速建立整体认知。

核心组件

核心职责

一句话解读

TiDB Server

负责接收 SQL 请求,处理 SQL 相关的逻辑,是无状态的计算层

接收 SQL 查询,进行解析、优化,生成分布式执行计划,并将请求转发给存储节点。它类似于“大脑”,本身不存储数据,可以水平扩展 。

PD (Placement Driver) Server

整个集群的元信息管理模块调度中心

存储集群的元信息(如数据分布),负责全局 ID 生成、计时器、数据调度和负载均衡。它是集群的“总调度中心”,确保系统有序高效运行 。

TiKV Server

分布式的 Key-Value 存储引擎,负责数据的持久化存储

以 Region 为单位存储数据,并通过 Raft 协议实现数据的多副本复制,保证数据的强一致性和高可用性。它是可靠的“仓库” 。

TiFlash

列式存储引擎,是 TiDB 实现 HTAP 的关键组件。

实时从 TiKV 同步行存数据并转换为列存格式,专为复杂的分析查询设计。使用它可以实现行存列存共存,一份数据同时处理 OLTP 和 OLAP 场景 。


工作原理与流程

TiDB 的工作流程可以概括为以下几个关键步骤,下图直观地展示了一个 SQL 查询请求从发出到返回结果的完整路径,以及各核心组件在其中扮演的角色:

TiDB核心概念和入门nerror="javascript:errorimg.call(this);">

简单来说:你可以把 TiDB 集群想象成一个高效协作的团队。当 SQL 请求(如 SELECt * FROM users WHERe id = 1;)到来时:

  1. TiDB Server像团队的“翻译官和指挥官”,负责解析你的 SQL 指令。
  2. 它需要去 PD Server这个“全局信息管理员”那里查一下,id=1这条数据具体存储在哪个“货架”(TiKV 节点)上。
  3. 拿到位置信息后,TiDB Server会向对应的 TiKV Server“仓库管理员”下达指令,精准获取数据。
  4. 如果是一个复杂的分析查询,TiDB Server可能会选择将任务交给更擅长批量数据处理的“分析专家” TiFlash来执行。
  5. 最后,TiDB Server将获取的结果整理好,返回给客户端。

整个过程对应用是透明的,你仍然使用标准的 MySQL 协议和语法,但底层数据库已经具备了无限水平扩展高可用的能力 。


快速入门指南

我们通过一个简单的例子,帮你快速上手 TiDB。

1. 部署体验

对于初学者,最快的方式是使用 TiDB Cloud(数据库即服务,DBaaS),它提供了免费的试用集群 。如果想在本地体验,可以使用 TiUP这个强大的运维工具一键部署本地测试环境 。

# 使用 TiUP 快速部署本地测试集群(单机版)tiup playground

2. 连接数据库

TiDB 高度兼容 MySQL 协议。部署成功后,你可以使用任何熟悉的 MySQL 客户端(如 MySQL 命令行客户端、Navicat、DBeaver 等)连接它,就像连接一个普通的 MySQL 数据库一样 。

mysql -h 127.0.0.1 -P 4000 -u root
  • -h参数指定 TiDB 服务器地址(本地为 127.0.0.1)。
  • -P参数指定端口,TiDB 默认使用 4000端口 。
  • -u参数指定用户名。

3. 基本操作示例

连接成功后,你就可以使用熟悉的 SQL 语句进行操作了。

-- 创建一个数据库CREATE DATAbase my_test_db;USE my_test_db;-- 创建一张表CREATE TABLE users (    id BIGINT AUTO_RANDOM PRIMARY KEY,    name VARCHAr(100) NOT NULL,    email VARCHAr(255));-- 插入数据INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');INSERT INTO users (name, email) VALUES ('李四', 'lisi@example.com');-- 查询数据SELECt * FROM users;-- 进行一个事务操作BEGIN;UPDATE users SET email = 'new_email@example.com' WHERe name = '李四';COMMIT;

从上面的操作可以看出,对于开发者和使用者来说,操作 TiDB 和操作 MySQL 几乎没有区别,学习门槛非常低 。


核心特性解读

理解 TiDB 的以下几个关键特性,能帮助你更好地认识其价值。

  1. 水平扩展(Horizontal Scalability)
  2. 这是 TiDB 最核心的能力。当业务增长导致存储空间或计算能力不足时,传统数据库(如 MySQL)通常需要进行复杂的分库分表。而 TiDB 可以通过简单地增加 TiKV 或 TiDB Server 节点来线性地提升整体的存储容量和处理能力,整个过程对业务透明,无需停机 。
  3. 高可用(High Availability)
  4. TiDB 默认采用 多副本机制(通常为 3 副本)。你的数据会同时存储在多个 TiKV 节点上,并通过 Raft 共识算法确保副本间的一致性。即使某个节点发生故障,只要大多数副本存活,集群就能自动进行故障转移,继续提供服务,实现 RPO(恢复点目标)= 0,RTO(恢复时间目标)≈ 30秒的金融级高可用 。
  5. 实时 HTAP(Hybrid Transactional/Analytical Processing)
  6. 传统的做法是,在线交易数据库(OLTP)的数据需要通过 ETL 工具定期同步到数据仓库(OLAP)中进行分析,这会导致数据延迟。TiDB 通过引入 TiFlash列式存储引擎,使得一份数据同时支持两类处理。行存引擎 TiKV 高效处理实时交易,列存引擎 TiFlash 高效处理复杂分析查询,并且数据是实时同步的,实现了真正的混合负载 。

总结

总而言之,TiDB 是一个强大的分布式 SQL 数据库,它通过计算、存储、调度分离的架构,实现了水平扩展、高可用和实时 HTAP等关键能力。其高度兼容 MySQL的特性使得迁移和使用成本大大降低。

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心