返回探索
tidb

TiDB - 分布式SQL数据库解决方案

分布式SQL数据库,支持高并发与实时分析,适合企业级应用

4
39,967 浏览
教育学习
访问官网

详细介绍

TiDB 仓库中文介绍文档

TiDB 是一款为现代应用程序设计的开源、云原生、分布式 SQL 数据库,由 PingCAP 提供,汇聚/支持/包含分布式事务、水平和垂直扩展、高可用性、HTAP 等核心内容。

要点:

  • 开头就要说清楚:这是什么工具、解决什么问题
  • 包含Stars数(如有)、维护者信息
  • 1-3句话,简洁有力

一、核心信息速览

维度 详情
:--- :---
仓库地址 [tidb](https://github.com/pingcap/tidb)
许可证 Apache 2.0
核心定位 为现代应用程序提供高性能、高可用、强一致性的分布式 SQL 数据库解决方案
主要语言 Go
适用人群 企业开发者、数据库架构师、运维工程师、数据分析师
关键亮点 分布式事务;水平和垂直扩展;高可用性;HTAP

二、核心功能

功能模块 描述 典型场景
:--- :--- :---
分布式事务 TiDB 使用两阶段提交协议确保 ACID 合规,提供强一致性。事务跨多个节点,即使在网络分区或节点故障时也能保证数据正确性 金融交易系统、电商平台订单处理
水平和垂直扩展 TiDB 可通过添加更多节点或增加现有节点资源进行扩展,无需停机。其架构将计算与存储分离,实现灵活调整 业务快速增长的企业、需要弹性扩展的应用
高可用性 内置 Raft 共识协议确保可靠性及自动故障转移。数据以多副本形式存储,事务仅在多数副本写入后提交,确保强一致性 对数据可靠性和可用性要求高的场景
HTAP TiDB 提供 TiKV(行存储)和 TiFlash(列存储)两种存储引擎,实时复制数据,优化查询性能 实时分析、混合负载处理
云原生 TiDB 可部署于公有云、本地或 Kubernetes 原生环境,支持多种部署方式 云上应用、容器化部署环境
MySQL 兼容性 TiDB 支持 MySQL 协议,兼容大部分 MySQL 语法和功能,便于迁移和使用 从 MySQL 迁移至 TiDB 的应用场景
分布式数据库 TiDB 是一个真正的分布式数据库,能够处理大规模数据和高并发请求 大规模数据处理、高并发业务场景
Serverless TiDB 支持 Serverless 架构,按需自动扩展资源,降低运维复杂度 弹性需求高的业务场景

三、快速上手

1. 环境准备

  • 安装 Go 1.18 或更高版本
  • 安装 Git
  • 安装 Docker(用于测试环境)

2. 安装方式

git clone https://github.com/pingcap/tidb.git
cd tidb
make

3. 基础配置

  • 修改 conf/tidb.toml 文件中的配置项,如监听地址、端口等
  • 配置 TiKV 和 PD 的连接参数

4. 核心示例

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100)
);

-- 插入数据
INSERT INTO users (id, name) VALUES (1, 'Alice');

-- 查询数据
SELECT * FROM users WHERE id = 1;

四、核心亮点

  1. 分布式事务:TiDB 使用两阶段提交协议确保 ACID 合规,提供强一致性。
  2. 水平和垂直扩展:TiDB 可通过添加更多节点或增加现有节点资源进行扩展,无需停机。
  3. 高可用性:内置 Raft 共识协议确保可靠性及自动故障转移。
  4. HTAP:TiDB 提供 TiKV(行存储)和 TiFlash(列存储)两种存储引擎,实时复制数据,优化查询性能。

五、适用场景

  1. 金融交易系统:TiDB 的强一致性保证了交易数据的准确性和可靠性。
  2. 电商平台订单处理:TiDB 的高并发处理能力满足电商平台的需求。
  3. 实时数据分析:TiDB 的 HTAP 特性可以同时支持事务和分析操作。
  4. 云原生应用:TiDB 支持多种云环境部署,适合云原生架构。

六、优缺点

优势

  • 分布式事务确保数据一致性
  • 高可用性保障业务连续性
  • 支持 HTAP,兼顾事务和分析需求
  • 云原生支持,适应多种部署环境

不足

  • 学习曲线较陡,需要一定技术储备
  • 部分高级功能需要专业运维团队支持

七、与同类工具对比(可选)

工具 类型 核心差异
:--- :--- :---
TiDB 开源分布式数据库 免费开源、易用、功能全
MySQL 关系型数据库 商业闭源、不支持分布式扩展

八、总结

TiDB 是一款适用于企业级应用的分布式 SQL 数据库,适合需要高可用性、强一致性、高扩展性的场景。它在处理大规模数据和高并发请求方面表现出色,但需要一定的技术储备和运维支持。

相关工具