![cover](https://img-blog.csdnimg.cn/img_convert/b2b92539ea934d9faefe5c9abbf50944.png)
【NewSQL】-- 分布式数据库 TiDB 和 CockroachDB
·
一、基本描述
1、TiDB
国产骄傲。从2015年开始,至今已8年,当前最新版本是7.5.x。TiDB 开源分布式 NewSQL 关系型数据库 是新一代开源分布式 NewSQL 数据库,模型受 Google Spanner / F1 论文的启发,实现了自动的水平伸缩,强一致性的分布式事务,基于 Raft 算法的多副本复制等重要 NewSQL 特性。
TiDB 结合了 RDBMS 和 NoSQL 的优点,部署简单,在线弹性扩容和异步表结构变更不影响业务, 真正的异地多活及自动故障恢复保障数据安全,同时兼容 MySQL 协议,使迁移使用成本降到极低。
2、CockroachDB (小强DB)
源于美国。当前最新版本:v23.1.x。CockroachDB(又名为蟑螂DB,常常称为小强DB),是构建于事务处理及强一致性KV存储上的分布式SQL数据库,支持水平扩展、自动容错处理、强一致性事务,并且提供SQL接口用于数据处理,是Google Spanner/F1的开源实现。
CockroachDB适用于应用对数据要求精确、可靠、完全正确的场景,支持自动复制、均匀分布、基于极小配置的数据恢复,可用于分布式的、可复制的联机事务处理(OLTP),多数据中心的部署,私有云的基础构建,它不适用于读少写多的场景,可以用内存数据库来代替,也不适用于复杂的join查询,重量级的数据分析及联机分析处理(OLAP)。虽然兼容 Postgre 协议,但该数据库也有一个为分布式数据库设计的自定义SQL实现。
二、对比
主要特性 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
名称 | CockroachDB | TiDB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
数据库类型 | 关系性数据库 | 关系性数据库 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
辅助数据库模型 | - | 文档存储 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
官方说明文档 | www.cockroachlabs.com/docs | docs.pingcap.com/tidb/stable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
商业公司 | Cockroach Labs | PingCAP, Inc. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
初始版本 | 2015 | 2016 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
当前稳定版本 | 23.1.1, May 2023 | 7.5.0, December 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License | Open Source | Open Source | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
仅基于云 | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBaaS产品(赞助链接) | CockroachDB: A cloud-native, distributed SQL database designed for speed, scale, and survival. Get started for free today with a fully-managed CockroachDB cluster -- leave operations behind and get your app to market faster. | TiDB Cloud: Fully-managed TiDB Service. Bring everything great about TiDB to the cloud. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
基于编程语言 | Go | Go, Rust | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
支持的操作系统 | Linux macOS Windows | Linux | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data scheme | dynamic schema | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML support | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
二级索引 | yes | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL | yes, wire compatible with PostgreSQL | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
APIs and other access methods | JDBC | GORM JDBC ODBC Proprietary protocol SQLAlchemy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
支持的编程语言接口 | C# C++ Clojure Go Java JavaScript (Node.js) PHP Python Ruby Rust | Ada C C# C++ D Delphi Eiffel Erlang Haskell Java JavaScript (Node.js) Objective-C OCaml Perl PHP Python Ruby Scheme Tcl | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server-side scripts | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
触发器 | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Partitioning methods | horizontal partitioning (by key range) | horizontal partitioning (by key range) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Replication methods | Multi-source replication using RAFT | Using Raft consensus algorithm to ensure data replication with strong consistency among multiple replicas. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MapReduce | no | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Consistency concepts | Immediate Consistency | Immediate Consistency | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foreign keys | yes | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transaction concepts | ACID | ACID | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Concurrency | yes | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Durability | yes | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In-memory capabilities | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User concepts | Role-based access control | Fine grained access rights according to SQL-standard |
更多推荐
所有评论(0)