Skip to content
TiDB is a distributed HTAP database compatible with the MySQL protocol
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github issue_template: add template for performance issue (#9021) Feb 12, 2019
LICENSES *: Tiny cleanup (#1145) Apr 23, 2016
bindinfo *: add config item for bind info lease (#10725) Jun 5, 2019
cmd planner: fix wrong selectivity for inner selection in index join (#10633 Jun 12, 2019
config config: fix 'PessimisticTxn' config JSON key (#10820) Jun 17, 2019
ddl ddl: make add index test stable by change ddl reorg batch size (#10827) Jun 18, 2019
distsql distsql: improve package distsql test code coverage to 85% (#10582) May 31, 2019
docs docs/design: move pictures to imgs && other tiny refinement (#10438) Jun 4, 2019
domain domain: load stats when stats lease is 0 (#10771) Jun 13, 2019
executor ddl, expression: Disallow add stored generated columns through ALTER … Jun 13, 2019
expression expression: add a failpoint switch to control expr push down in integ… Jun 14, 2019
hooks hooks: add pre_commit comment (#9308) Apr 30, 2019
infoschema ddl, table: allow using SHARD_ROW_ID_BITS with auto_incremental colum… Jun 12, 2019
kv expression: add a failpoint switch to control expr push down in integ… Jun 14, 2019
meta *: implement IterReverse for tikvSnapshot and use desc scan to get la… May 31, 2019
metrics store/tikv/gcworker: Make resolveLock concurrent (#10379) May 16, 2019
owner util/logutil: add some tests to improve test coverage (#10479) May 31, 2019
planner domain: load stats when stats lease is 0 (#10771) Jun 13, 2019
plugin plugin: add unit test for plugin (#10506) Jun 10, 2019
privilege privileges: add SkipWithGrant check for RBAC methods (#10681) Jun 5, 2019
server *: print an expensive log when a query exceeds time threshold (#10350) Jun 5, 2019
session session: do not add history for pessimistic transaction (#10823) Jun 17, 2019
sessionctx expression: fix the behavior of `DATE_SUB` (#10607) Jun 13, 2019
statistics domain: load stats when stats lease is 0 (#10771) Jun 13, 2019
store expression: add a failpoint switch to control expr push down in integ… Jun 14, 2019
structure *: implement IterReverse for tikvSnapshot and use desc scan to get la… May 31, 2019
table table: remove wrong Chinese characters in comments (#10819) Jun 17, 2019
tablecodec tablecodec: improve package unit test code coverage to 85% (#10356) May 8, 2019
tidb-server *: print an expensive log when a query exceeds time threshold (#10350) Jun 5, 2019
tools/check Makefile: update gometalinter to v3 (#10175) Apr 17, 2019
types fix invalid json (#10510) Jun 6, 2019
util expression: add a failpoint switch to control expr push down in integ… Jun 14, 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.md CHANGELOG: release notes for v3.0.0-rc.1,v2.1.9,v2.1.8 (#10404) May 13, 2019
CONTRIBUTING.md CONTRIBUTING.md: 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 Makefile: add a 'make ddltest' target to generate ddltest binary (#10542 May 20, 2019
README.md Fixed TiDB Slack link (#10386) May 8, 2019
checklist.md Format checklist.md (#3382) Jun 5, 2017
checkout-pr-branch.sh *: 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
code_review_guide.md doc: add code review guide. (#3166) Apr 28, 2017
gitcookie.sh server: Add metrics (#1729) Sep 17, 2016
go.mod update vendor to build on ARM64 (#10805) Jun 17, 2019
go.sum update vendor to build on ARM64 (#10805) Jun 17, 2019

README.md

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

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.

Adopters

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

Roadmap

Read the Roadmap.

Quick start

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

Documentation

Architecture

architecture

Contributing

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

License

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

Acknowledgments

You can’t perform that action at this time.