Skip to content
TiDB is a distributed HTAP database compatible with the MySQL protocol
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github .github: automatically include labels when creating issues (#10989) Jun 29, 2019
LICENSES *: Tiny cleanup (#1145) Apr 23, 2016
bindinfo bindinfo: fix unstable test (#10949) Jul 1, 2019
cmd planner: fix a corner case in column pruning rule (#10974) Jul 1, 2019
config config: refine comment (#11272) Jul 16, 2019
ddl session: do not keep history when the transaction retry is disabled (#… Jul 12, 2019
distsql distsql: clean the memory usage of MemTracker when a query end… (#10898) Jun 27, 2019
docs docs/design: move pictures to imgs && other tiny refinement (#10438) Jun 4, 2019
domain domain: update the schema check outdate metric (#11134) Jul 9, 2019
executor executor: update test since DELETE FROM ... AS ... syntax is now supp… Jul 19, 2019
expression Function SUBTIME ADDTIME should return NULL with a warning if… (#11262) Jul 19, 2019
hooks hooks: add pre_commit comment (#9308) Apr 30, 2019
infoschema *: improve column size calculation of statistics (#11091) Jul 15, 2019
kv *: add show table regions syntax (#10612) Jul 10, 2019
lock *: add admin cleanup table lock syntax support (#10423) Jul 10, 2019
meta meta: make auto increment id can be adjust. (#10978) Jun 28, 2019
metrics metrics: add missing tikv_txn_cmd_counter (#11292) Jul 18, 2019
owner owner: improve unit tests code coverage (#10792) Jun 29, 2019
planner planner: fix NAME_CONST function compatibility (#11241) Jul 16, 2019
plugin plugin: add "exec start-time" to GeneralEvent (#11293) Jul 18, 2019
privilege stats: fix unstable test (#10953) Jun 27, 2019
server fix scatter range (#11281) Jul 17, 2019
session *: refine text protocol multiple query response (#11263) Jul 17, 2019
sessionctx executor,sessionctx: refine output format for tidb-specific variables… Jul 15, 2019
statistics *: improve column size calculation of statistics (#11091) Jul 15, 2019
store store/tikv: Avoid sending to channel everywhere in runGCJob (#11032) Jul 17, 2019
structure *: implement IterReverse for tikvSnapshot and use desc scan to get la… May 31, 2019
table *: improve column size calculation of statistics (#11091) Jul 15, 2019
tablecodec *: improve column size calculation of statistics (#11091) Jul 15, 2019
tidb-server config, kv: make TxnEntryCountLimit and TxnTotalSizeLimit configurable ( Jul 4, 2019
tools/check Makefile: update gometalinter to v3 (#10175) Apr 17, 2019
types expression, types: fix Mod(%), Multiple(*), Minus(-) operators meets … Jul 19, 2019
util *: refine text protocol multiple query response (#11263) Jul 17, 2019
.codecov.yml build:add codecov.yml (#9618) Mar 8, 2019
.dockerignore Dockerfile: Fix error while running `make server` (#1361) Jun 30, 2016
.editorconfig .editorconfig: add .editorconfig file, make tab_size = 4 (#2779) Mar 5, 2017
.gitattributes *: make sure parser.y has LF line endings on checkout (#7449) Aug 22, 2018
.gitignore *: fix some lints produced by golangci-lint (#8999) Jan 16, 2019 CHANGELOG: pick changelog from branch release-2.1 and branch r… (#11017) Jul 10, 2019 Add usability team in PR guidelines (#10601) May 27, 2019
CONTRIBUTORS correct the name of contributor (#3584) Jun 30, 2017
Dockerfile docker: cache vendor to speed up docker build (#10296) May 22, 2019
Jenkinsfile Jenkinsfile: init adding Jenkinsfile (#3249) May 15, 2017
LICENSE *: Tiny cleanup (#1145) Apr 23, 2016
Makefile *: avoid `tidb-server -h` output test flags (#11209) Jul 12, 2019 Update (#11267) Jul 17, 2019 Format (#3382) Jun 5, 2017 *: checkout to that branch before pulling data from upstream (#5543) Jan 4, 2018
circle.yml *: remove go.mod replace check in circle CI (#10228) Apr 22, 2019 doc: add code review guide. (#3166) Apr 28, 2017 server: Add metrics (#1729) Sep 17, 2016
go.mod executor: update test since DELETE FROM ... AS ... syntax is now supp… Jul 19, 2019
go.sum executor: update test since DELETE FROM ... AS ... syntax is now supp… Jul 19, 2019

LICENSE Language Build Status Go Report Card GitHub release GitHub release date CircleCI Status Coverage Status GoDoc

What is TiDB?

TiDB ("Ti" stands for Titanium) is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads. It is MySQL compatible and features horizontal scalability, strong consistency, and high availability.

  • Horizontal Scalability

    TiDB expands both SQL processing and storage by simply adding new nodes. This makes infrastructure capacity planning both easier and more cost-effective than traditional relational databases which only scale vertically.

  • MySQL Compatible Syntax

    TiDB acts like it is a MySQL 5.7 server to your applications. You can continue to use all of the existing MySQL client libraries, and in many cases, you will not need to change a single line of code in your application. Because TiDB is built from scratch, not a MySQL fork, please check out the list of known compatibility differences.

  • Distributed Transactions with Strong Consistency

    TiDB internally shards table into small range-based chunks that we refer to as "regions". Each region defaults to approximately 100MiB in size, and TiDB uses a Two-phase commit internally to ensure that regions are maintained in a transactionally consistent way.

  • Cloud Native

    TiDB is designed to work in the cloud -- public, private, or hybrid -- making deployment, provisioning, operations, and maintenance simple.

    The storage layer of TiDB, called TiKV, became a Cloud Native Computing Foundation member project in 2018. The architecture of the TiDB platform also allows SQL processing and storage to be scaled independently of each other in a very cloud-friendly manner.

  • Minimize ETL

    TiDB is designed to support both transaction processing (OLTP) and analytical processing (OLAP) workloads. This means that while you may have traditionally transacted on MySQL and then Extracted, Transformed and Loaded (ETL) data into a column store for analytical processing, this step is no longer required.

  • High Availability

    TiDB uses the Raft consensus algorithm to ensure that data is highly available and safely replicated throughout storage in Raft groups. In the event of failure, a Raft group will automatically elect a new leader for the failed member, and self-heal the TiDB cluster without any required manual intervention. Failure and self-healing operations are also transparent to applications.

For more details and latest updates, see official TiDB blog.


View the current list of in-production TiDB adopters here.


Read the Roadmap.

Quick start

Read the Quick Start Guide, which includes deployment methods using Ansible, Docker, and Kubernetes.





Contributions are welcomed and greatly appreciated. See for details on submitting patches and the contribution workflow.


TiDB is under the Apache 2.0 license. See the LICENSE file for details.


You can’t perform that action at this time.