pingcap/tidb
GitHub: pingcap/tidb
开源云原生分布式 SQL 数据库,支持 HTAP 混合负载、水平扩展和 MySQL 协议兼容。
Stars: 39932 | Forks: 6132
[](https://github.com/pingcap/tidb/blob/master/LICENSE)
[](https://golang.org/)
[](https://prow.tidb.net/?repo=pingcap%2Ftidb&type=postsubmit&job=merged-tidb-build)
[](https://goreportcard.com/report/github.com/pingcap/tidb)
[](https://github.com/pingcap/tidb/releases)
# TiDB
TiDB (/’taɪdiːbi:/,"Ti" 代表 Titanium) 是一个开源的、云原生的分布式 SQL 数据库,专为高可用性、水平与垂直扩展、强一致性和高性能而设计。
- [核心特性](#key-features)
- [快速开始](#quick-start)
- [需要帮助?](#need-help)
- [架构](#architecture)
- [贡献](#contributing)
- [许可证](#license)
- [另请参阅](#see-also)
- [致谢](#acknowledgments)
## 核心特性
- **[分布式事务](https://www.pingcap.com/blog/distributed-transactions-tidb?utm_source=github&utm_medium=tidb)**:TiDB 使用两阶段提交协议来确保 ACID 合规性,提供强一致性。事务跨越多个节点,即使存在网络分区或节点故障,TiDB 的分布式特性也能确保数据的正确性。
- **[水平与垂直扩展](https://docs.pingcap.com/tidb/stable/scale-tidb-using-tiup?utm_source=github&utm_medium=tidb)**:TiDB 可以通过增加更多节点进行水平扩展,也可以通过增加现有节点的资源进行垂直扩展,且无需停机。TiDB 的架构将计算与存储分离,允许您根据灵活性和增长的需要独立调整两者。
- **[高可用性](https://docs.pingcap.com/tidbcloud/high-availability-with-multi-az?utm_source=github&utm_medium=tidb)**:内置的 Raft 共识协议确保了可靠性和自动故障转移。数据存储在多个副本中,只有在写入大多数副本后事务才会提交,从而保证即使某些副本发生故障也能实现强一致性和可用性。副本的地理位置放置可以配置为不同的容灾级别。
- **[混合事务/分析处理 (HTAP)](https://www.pingcap.com/blog/htap-demystified-defining-modern-data-architecture-tidb?utm_source=github&utm_medium=tidb)**:TiDB 提供两种存储引擎:TiKV,一个行式存储引擎,以及 TiFlash,一个列式存储引擎。TiFlash 使用 Multi-Raft Learner 协议实时从 TiKV 复制数据,确保 TiKV 行式存储引擎和 TiFlash 列式存储引擎之间的数据一致性。TiDB Server 协调 TiKV 和 TiFlash 之间的查询执行以优化性能。
- **[云原生](https://www.pingcap.com/cloud-native?utm_source=github&utm_medium=tidb)**:TiDB 可以部署在公有云、本地环境或 Kubernetes 中。[TiDB Operator](https://docs.pingcap.com/tidb-in-kubernetes/stable/tidb-operator-overview/?utm_source=github&utm_medium=tidb) 帮助在 Kubernetes 上管理 TiDB,自动化集群操作,而 [TiDB Cloud](https://tidbcloud.com/?utm_source=github&utm_medium=tidb) 提供完全托管的服务,实现简单且经济的部署,允许用户只需点击几下即可设置集群。
- **[MySQL 兼容性](https://docs.pingcap.com/tidb/stable/mysql-compatibility?utm_source=github&utm_medium=tidb)**:TiDB 兼容 MySQL 8.0,允许您使用熟悉的协议、框架和工具。您可以在不更改任何代码或进行极少修改的情况下将应用程序迁移到 TiDB。此外,TiDB 提供一套[数据迁移工具](https://docs.pingcap.com/tidb/stable/ecosystem-tool-user-guide?utm_source=github&utm_medium=tidb),帮助轻松地将应用数据迁移到 TiDB。
- **[开源承诺](https://www.pingcap.com/blog/open-source-is-in-our-dna-reaffirming-tidb-commitment?utm_source=github&utm_medium=tidb)**:开源是 TiDB 身份的核心。所有源代码均根据 Apache 2.0 许可在 GitHub 上提供,包括企业级功能。TiDB 的构建信念是开源能够实现透明度、创新和协作。我们积极鼓励社区的贡献,以帮助建立一个充满活力和包容性的生态系统,重申我们对开源开发和人人可访问的承诺。
## 快速开始
1. 启动 TiDB 集群。
- **在本地环境**。要启动本地测试集群,请参阅 [TiDB 快速开始指南](https://docs.pingcap.com/tidb/stable/quick-start-with-tidb#deploy-a-local-test-cluster?utm_source=github&utm_medium=tidb)。
- **在 Kubernetes 上**。使用 TiDB Operator 可以轻松地在自管理的 Kubernetes 环境或公有云上的 Kubernetes 服务中部署 TiDB。有关更多详细信息,请参阅 [Kubernetes 上的 TiDB 快速开始指南](https://docs.pingcap.com/tidb-in-kubernetes/stable/get-started?utm_source=github&utm_medium=tidb)。
- **使用 TiDB Cloud(推荐)**。TiDB Cloud 提供 TiDB 的完全托管版本,包含免费计划,无需信用卡,因此您可以在几秒钟内获得一个免费集群并轻松开始:[注册 TiDB Cloud](https://tidbcloud.com/free-trial?utm_source=github&utm_medium=tidb)。
2. 了解 TiDB SQL:要探索 TiDB 的 SQL 功能,请参阅 [TiDB SQL 文档](https://docs.pingcap.com/tidb/stable/sql-statement-overview?utm_source=github&utm_medium=tidb)。
3. 使用 MySQL 驱动程序或 ORM [使用 TiDB 构建应用](https://docs.pingcap.com/tidbcloud/dev-guide-overview?utm_source=github&utm_medium=tidb)。
4. 探索核心特性,例如[数据迁移](https://docs.pingcap.com/tidbcloud/tidb-cloud-migration-overview?utm_source=github&utm_medium=tidb)、[changefeed](https://docs.pingcap.com/tidbcloud/changefeed-overview?utm_source=github&utm_medium=tidb)、[向量搜索](https://docs.pingcap.com/tidbcloud/vector-search-overview?utm_source=github&utm_medium=tidb)、[HTAP](https://docs.pingcap.com/tidbcloud/tidb-cloud-htap-quickstart?utm_source=github&utm_medium=tidb)、[容灾](https://docs.pingcap.com/tidb/stable/dr-solution-introduction?utm_source=github&utm_medium=tidb)等。
## 需要帮助?
- 您可以在我们的社区平台上与 TiDB 用户交流、提问、寻找答案并帮助他人:[Discord](https://discord.gg/KVRZBR2DrG?utm_source=github)、Slack([英文](https://slack.tidb.io/invite?team=tidb-community&channel=everyone&ref=pingcap-tidb)、[日文](https://slack.tidb.io/invite?team=tidb-community&channel=tidb-japan&ref=github-tidb))、[Stack Overflow](https://stackoverflow.com/questions/tagged/tidb)、[TiDB 中文论坛](https://asktug.com)、X [@PingCAP](https://twitter.com/PingCAP)
- 如需提交错误、建议改进或请求新功能,请使用 [Github Issues](https://github.com/pingcap/tidb/issues) 或加入 [Github Discussions](https://github.com/orgs/pingcap/discussions) 进行讨论。
- 要排查 TiDB 故障,请参阅[故障排除文档](https://docs.pingcap.com/tidb/stable/tidb-troubleshooting-map?utm_source=github&utm_medium=tidb)。
## 架构

在我们的[文档](https://docs.pingcap.com/tidb/stable/tidb-architecture?utm_source=github&utm_medium=tidb)中了解有关 TiDB 架构的更多详细信息。
## 许可证
TiDB 采用 Apache 2.0 许可证。有关详细信息,请参阅 [LICENSE](./LICENSE) 文件。
## 另请参阅
- [TiDB 在线演练场](https://play.tidbcloud.com/?utm_source=github&utm_medium=tidb_readme)
- TiDB 案例研究:[TiDB 客户](https://www.pingcap.com/customers/?utm_source=github&utm_medium=tidb)、[TiDB 事例记事](https://pingcap.co.jp/case-study/?utm_source=github&utm_medium=tidb)、[TiDB 中文用户案例](https://cn.pingcap.com/case/?utm_source=github&utm_medium=tidb)
- [TiDB 用户文档](https://docs.pingcap.com/tidb/stable?utm_source=github&utm_medium=tidb)
- [TiDB 设计文档](/docs/design)
- [TiDB 发布说明](https://docs.pingcap.com/tidb/dev/release-notes?utm_source=github&utm_medium=tidb)
- [TiDB 博客](https://www.pingcap.com/blog/?utm_source=github&utm_medium=tidb)
- [TiDB 路线图](roadmap.md)
## 致谢
- 感谢 [cznic](https://github.com/cznic) 提供了一些出色的开源工具。
- 感谢 [GolevelDB](https://github.com/syndtr/goleveldb)、[BoltDB](https://github.com/boltdb/bolt) 和 [RocksDB](https://github.com/facebook/rocksdb) 提供强大的存储引擎。
标签:ACID, EVTX分析, Go语言, HTAP, MySQL兼容, NewSQL, OLAP, OLTP, PingCAP, Raft协议, Rust, SQL数据库, TiDB, 两阶段提交, 云数据库, 分布式事务, 分布式数据库, 基础设施, 大数据, 子域名突变, 存储引擎, 开源, 强一致性, 数据库, 日志审计, 混合事务分析处理, 目录扫描, 程序破解, 网络流量审计, 计算存储分离