2023-12-12 TDSQL初介绍

2023-12-11  本文已影响0人  一位被理工耽误的文艺范打工人

第一部分 TDSQL的发展史与产品定位

一、传统数据库 VS 分布式数据库

1、传统数据库+分库分表方案面临的问题
①数据不断增加,出现性能瓶颈。
②分库分表方案(垂直拆分,即“分库”,拆分业务;水平拆分,即“分表”,拆分数据量),手动定制分库分表规则。
③扩容对业务影响大,需要暂停业务停机扩容。
④OLAP与OLTP分开存储成本上升,数据复用低。
⑤业务改造成本高,数据迁移同步依靠经验评估存在误差。
2、分布式数据库的特点
自动分片存储:分布式数据库结构对业务透明,逻辑上是一个统一的整体,在物理上则是将数据通过路由以及分片算法方式,将数据打散分别存储在不同的数据节点上。
兼容性传统DB
在线扩展性
海量数据支持

分布式Shared-Nothing架构
3、传统数据库VS分布式数据库
传统数据库VS分布式数据库

二、TDSQL(MySQL版)产品介绍和定位

1、TDSQL(Tencent Distributed SQL,腾讯分布式数据库)(MySQL版)是腾讯研发的一款兼容MySQL协议的国产分布式数据库。
①其适用于超大并发、超高性能、超大容量的OLTP交易类业务场景的分布式数据库。
②其采用主从高可用架构,提供弹性扩展、备份、恢复、监控等全套解决方案,有效解决业务快速发展时数据库面临的各种挑战。
2、TDSQL(MySQL版)【以下简称TDSQL】是腾讯云数据库团队维护的金融级分布式架构数据库,同时兼容MySQL/MariaDB两个内核分支。

三、TDSQL的功能与架构

1、TDSQL功能模块

TDSQL功能模块概览
2、TDSQL架构图
TDSQL架构简图
(1)LVS/TGW:负载均衡层。
(2)SQL引擎:计算节点,也会被称为Proxy或网关。

四、TDSQL的复制方式和故障切换过程

1、TDSQL数据一致性保障
(1)MySQL原生复制方式

第二部分 TDSQL分布式实例的创建和使用

一、TDSQL分布式实例创建方法

1、TDSQL支持两种实例类型的创建

二、TDSQL分布式表的创建和分布式事务的执行

1、集中式表 VS 分布式表

create table tb1(
    id int unique,
    user_id varchar(20),
    age int,
    place varchar(10)
) shardkey=id;

一般建议对应的shardkey为主键或唯一键,使其在各个节点的分布更均匀一些,不会出现数据倾斜问题。
②业务SQL的增、删、改、查包含shardkey时,SQLEngine通过对shardkey进行hash;数据根据分片算法,将SQL发往对应的分片。如果SQL中不带shardkey则该SQL会发往所有的分片。
(2)分布式表的数据分布按shardkey拆分:
①将insert数据参照分片键进行hash运算和分别存放到不同数据节点,如参照用户ID、微信ID等。
②不同的SET负责不同范围的键值,SQL引擎根据SQL中的shardkey值hash计算后发往对应的SET。

分布式表的数据分布样例图
3、分布式事务采用两阶段提交协议(two phase commit,2PC)实现,在异常处理方面,采用全局死锁检测机制

第三部分 TDSQL备份配置

一、TDSQL的备份方式和兼容的工具

1、手动备份
(1)备份存储类型有:
①HDFS:备份到分布式文件存储系统中。需要预先配置HDFS存储。
②Local:指备份到DB本地磁盘中。
③COS:指备份到腾讯云分布式存储中。
(2)备份类型有:
①物理备份:指物理数据的全备份。
②逻辑备份:产生对应的SQL语句再执行的过程,逻辑备份是物理备份的补充。
2、自动备份
(1)默认会开启全量物理备份,关闭全量逻辑备份。
(2)全量物理备份支持增量备份,可以设置增量备份间隔天数。
(3)备份周期:默认每天做一个全量备份。
(4)备份保存时间:默认保存30天,可以在运营平台修改保存时间。

备注:以上内容主要来自腾讯云课堂相关课程内容。

上一篇:产品设计之架构设计(20231009-1012)
下一篇:2023-12-13 TBase初介绍

上一篇 下一篇

猜你喜欢

热点阅读