pandaAnthony:分布式数据库TiDB

2020-08-04  本文已影响0人  pandaAnthony

1、背景

传统的数据库单表超过千万级别性能会急剧下降,不满足某些行业的业务需求(电商之类数据量巨大的)。
那么怎么解决这种大数据量的存储呢,大体有2种方式:1、使用分布式存储来解决这个问题(nosql,大数据hadoop的hdfs);2、数据库分库分表。

NoSQL,泛指非关系型的数据库,具体分类如下:


image.png

数据库分库分表有不少成熟的框架,具体如下:


image.png

其中用得比较多的应该是MyCAT(需要服务端),官网地址http://www.mycat.org.cn/
还有以前当当的shardingjdbc(不需要服务端),现在改名成shardingsphere(也有支持服务端的sharding-proxy),官网地址http://shardingsphere.apache.org/

其中nosql的方案不支持数据库的ACID,只能保证最终一致性;
分库分表可以解决问题,但是会引进不少其他的问题需要解决,而且对运维的难度有所提升;这里有一篇介绍分库分表方案的不足的帖子https://dbaplus.cn/news-11-1854-1.html

2、TiDB简介

在各种解决方案都不是非常好的情况下,诞生了一种新的数据库newsql:NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。
这里有一篇关于newsql的帖子可以了解下:https://cloud.tencent.com/developer/article/1445846
其中TiDB是用go开发的一款newsql,官网地址是https://pingcap.com/。git地址https://github.com/pingcap

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

2.1、TiDB 整体架构

与传统的单机数据库相比,TiDB 具有以下优势:

在内核设计上,TiDB 分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的 TiDB 系统。对应的架构图如下:


architecture

2.2、与 MySQL 兼容性对比概览

基本上mysql的基本功能都支持:

不支持的功能特性:

更详细的内容查看官网:https://docs.pingcap.com/zh/tidb/stable/mysql-compatibility

2.3、TiDB 软件和硬件环境建议配置

TiDB对于硬件的要求不是很低,存储的TiKv和TiFlash都需要固态硬盘,尤其是用于分析的TiFlash内存和cpu要求比较高(这里暂时就不介绍怎么安装了):


image.png

其他配置详见:https://pingcap.com/docs-cn/stable/hardware-and-software-requirements/

2.4、适用场景

最后,一些合作案例和PingCAP公司相关的文章地址http://www.ctoutiao.com/c/74735854/

上一篇 下一篇

猜你喜欢

热点阅读