Skip to content
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Go Other
  1. Go 99.8%
  2. Other 0.2%
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github .github: restore `What did you see instead` in bug report (#17284) May 19, 2020
LICENSES *: Tiny cleanup (#1145) Apr 23, 2016
bindinfo bindinfo, record how bindings are created in SQL bindings. (#17254) May 27, 2020
cmd planner: push agg below partition union all by default (#17262) May 28, 2020
config mockstore: introducing embedded unistore (#17156) May 18, 2020
ddl ddl,expression: fix using extract() function as partition key when cr… May 28, 2020
distsql session, tikv: allocate task IDs for distsql requests (#16520) May 13, 2020
docs docs: add TiDB tools compatibility check (#17440) Jun 1, 2020
domain domain: print some logs to investigate the leak (#17503) Jun 1, 2020
errno ddl: forbid add column with sequence as default value (#17133) May 14, 2020
executor planner: fix wrong prepare plan after isolation read changed (#16293) Jun 1, 2020
expression expression: fix wrong result for field function (#15511) Jun 1, 2020
hooks pre-commit: fixed goword path (#14524) Jan 20, 2020
infoschema infoschema: refine some metric table comment (#17279) May 29, 2020
kv kv: fix transaction too large error message (#17198) May 14, 2020
lock *: add admin cleanup table lock syntax support (#10423) Jul 10, 2019
meta meta: fix the allocator batch size compute logic (#17271) Jun 1, 2020
metrics metrics: fix grafana script of QPS by instance and type (#17073) May 12, 2020
owner mockstore: introducing embedded unistore (#17156) May 18, 2020
planner planner: fix wrong prepare plan after isolation read changed (#16293) Jun 1, 2020
plugin errno: move the error code from the parser/mysql to tidb/errno (#15277) Mar 11, 2020
privilege mockstore: introducing embedded unistore (#17156) May 18, 2020
server expensivequery: fix the issue that max_exec_time hint doesn't work if… May 29, 2020
session planner: fix wrong prepare plan after isolation read changed (#16293) Jun 1, 2020
sessionctx sessionctx,infoschema,executor,util: Show disk usage of a query in sl… May 26, 2020
statistics statistics: avoid large CMSketch affecting the latency of normal query ( Jun 1, 2020
store tikv: remove the update leader backoff (#17541) Jun 1, 2020
structure mockstore: introducing embedded unistore (#17156) May 18, 2020
table expression: fix data race when simpleRewriter rewrite ast.ColumnNameE… May 26, 2020
tablecodec executor: fix memory corrupt in COUNT/JSON_OBJECTAGG/GROUP_CONCAT (#1… May 13, 2020
tests/cncheckcert server: support check the "CommanName" of tls-cert for status-port(ht… Mar 5, 2020
tidb-server *: fix setHeapProfileTracker panic on Windows (#17226) May 18, 2020
tools/check build: remove useless PHONY and deps (#16834) May 12, 2020
types types: match MySQL behavior with datetime delimiters (#17376) May 29, 2020
util expensivequery: fix the issue that max_exec_time hint doesn't work if… May 29, 2020
.codecov.yml expression: go generate vectorized addtime functions (#12224) Sep 26, 2019
.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 config:add vscode in gitignore (#12975) Oct 31, 2019
CHANGELOG.md CHANGELOG: cherry-pick v3.0.1/2/3/4 release notes (#12539) Oct 8, 2019
CODE_OF_CONDUCT.md CODE_OF_CONDUCT: Add Code of Conduct" (#12010) Sep 3, 2019
CONTRIBUTING.md *: reference the CONTRIBUTING.md in the community repo (#12069) Sep 9, 2019
CONTRIBUTORS.md fix contributors url link (#13862) Dec 5, 2019
Dockerfile license: add license for script files (#14252) Dec 28, 2019
Jenkinsfile Jenkinsfile: init adding Jenkinsfile (#3249) May 15, 2017
LICENSE *: Tiny cleanup (#1145) Apr 23, 2016
Makefile *: Show edition information when mysql client login (#17170) May 14, 2020
README.md README.md: add contribution-map icon and link (#15235) Mar 15, 2020
checklist.md Format checklist.md (#3382) Jun 5, 2017
checkout-pr-branch.sh license: add license for script files (#14252) Dec 28, 2019
circle.yml bump the Go compiler version to 1.13 for circle CI (#12557) Oct 9, 2019
code_review_guide.md doc: add code review guide. (#3166) Apr 28, 2017
gitcookie.sh license: add license for script files (#14252) Dec 28, 2019
go.mod go.mod: update parser version to support delete partition (p0,p1) (#1… May 25, 2020
go.sum go.mod: update parser version to support delete partition (p0,p1) (#1… May 25, 2020
staticcheck.conf Makefile: add staticcheck (#14420) Jan 10, 2020

README.md

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.

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.

Getting Help

Documentation

Architecture

architecture

Contributing

contribution-map

Contributions are welcomed and greatly appreciated. See CONTRIBUTING.md for details on submitting patches and the contribution workflow. For more contributing information, click on the contributor icon above.

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.