TiDB (/’taɪdiːbi:/, "Ti" stands for Titanium) is an open-source
NewSQL database that supports Hybrid Transactional and Analytical Processing (
HTAP) workloads. Designed to be
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
compatible, it is developed and supported primarily by PingCAP and licensed under Apache 2.0. It is also available as a paid product. TiDB drew its initial design inspiration from Google's Spanner and F1 papers.
Release history
See al
TiDB release notes
* On December 19, 2024
TiDB 8.5 GAwas released.
* On May 24, 2024
TiDB 8.1 GAwas released.
* On December 1, 2023
TiDB 7.5 GAwas released.
* On May 31, 2023
TiDB 7.1 GAwas released.
* On April 7, 2022
TiDB 6.0 GAwas released.
* On April 7, 202
TiDB 5.0 GAwas released.
* On May 28, 2020
TiDB 4.0 GAwas released.
* On June 28, 2019
TiDB 3.0 GAwas released.
* On April 27, 2018
TiDB 2.0 GAwas released.
* On October 16, 2017
TiDB 1.0 GAwas released.
Main features
Horizontal scalability
TiDB can expand both SQL processing and storage capacity by adding new nodes.
MySQL compatibility
TiDB acts like it is a
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
8.0 server to applications. A user can continue to use all of the existing MySQL client libraries. Because TiDB's SQL processing layer is built from scratch, not a MySQL fork.
Distributed transactions with strong consistency
TiDB internally shards a table into small range-based chunks that are referred to as "Regions". Each Region defaults to approximately 100 MB in size, and TiDB uses a
two-phase commit Two-phase may refer to:
* Two-phase electric power
* Two-phase commit protocol
* Two-phase flow
* Two-phase locking
* Binary phase, chemical compounds composed of two elements
{{Disambig ...
internally to ensure that regions are maintained in a transactionally consistent way.
Cloud native
TiDB is designed to work in the cloud. The storage layer of TiDB, called TiKV, became a
Cloud Native Computing Foundation (CNCF) member project in August 2018, as a Sandbox level project, and became an incubation-level hosted project in May 2019. TiKV graduated from CNCF in September 2020.
Real-time HTAP
TiDB can support both online transaction processing (
OLTP) and online analytical processing (
OLAP
In computing, online analytical processing (OLAP) (), is an approach to quickly answer multi-dimensional analytical (MDA) queries. The term ''OLAP'' was created as a slight modification of the traditional database term online transaction processi ...
) workloads. TiDB has two storage engines: TiKV, a rowstore, and TiFlash, a columnstore.
High availability
TiDB uses the
Raft consensus algorithm to ensure that data is available and 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.
Deployment methods
Kubernetes with Operator
TiDB can be deployed in a
Kubernetes
Kubernetes (), also known as K8s is an open-source software, open-source OS-level virtualization, container orchestration (computing), orchestration system for automating software deployment, scaling, and management. Originally designed by Googl ...
-enabled cloud environment by using TiDB Operator. An Operator is a method of packaging, deploying, and managing a Kubernetes application. It is designed for running stateful workloads and was first introduced by
CoreOS in 2016. TiDB Operator was originally developed by PingCAP and open-sourced in August, 2018. TiDB Operator can be used to deploy TiDB on a laptop,
Google Cloud Platform
Google Cloud Platform (GCP) is a suite of cloud computing services offered by Google that provides a series of modular cloud services including computing, Computer data storage, data storage, Data analysis, data analytics, and machine learnin ...
’s Google Kubernetes Engine, and
Amazon Web Services
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
’ Elastic Container Service for Kubernetes.
TiUP
TiDB 4.0 introduce
TiUP a cluster operation and maintenance tool. It helps users quickly install and configure a TiDB cluster with a few commands.
TiDB Ansible
TiDB can be deployed using
Ansible by using a TiDB Ansible playbook (not recommended).
Docker
Docker can be used to deploy TiDB in a containerized environment on multiple nodes and multiple machines, and Docker Compose can be used to deploy TiDB with a single command for testing purposes.
Tools
TiDB has a series of open-source tools built around it to help with data replication and migration for existing
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
and
MariaDB
MariaDB is a community-developed, commercially supported Fork (software development), fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Developm ...
users.
TiDB Data Migration (DM)
TiDB Data Migration (DM) is suited for replicating data from already sharded MySQL or MariaDB tables to TiDB. A common use case of DM is to connect MySQL or MariaDB tables to TiDB, treating TiDB almost as a slave, then directly run analytical workloads on this TiDB cluster in near real-time.
Backup & Restore
Backup & Restore (BR) is a distributed backup and restore tool for TiDB cluster data.
Dumpling
Dumpling is a data export tool that exports data stored in TiDB or MySQL. It lets users make logical full backups or full dumps from TiDB or MySQL.
TiDB Lightning
TiDB Lightning is a tool that supports high speed full-import of a large MySQL dump into a new TiDB cluster. This tool is used to populate an initially empty TiDB cluster with much data, in order to speed up testing or production migration. The import speed improvement is achieved by parsing SQL statements into key-value pairs, then directly generate Sorted String Table (SST) files to
RocksDB.
TiCDC
TiCDC is a
change data capture tool which streams data from TiDB to other systems like
Apache Kafka.
TiDB Binlog
TiDB Binlog is a tool used to collect the logical changes made to a TiDB cluster. It is used to provide incremental backup and replication, either between two TiDB clusters, or from a TiDB cluster to another downstream platform.
See also
*
YugabyteDB
*
CockroachDB
References
{{reflist
Free and open-source software
Databases
NewSQL
Software using the Apache license
Free software programmed in Go
Database-related software for Linux
Distributed computing
Distributed data stores