登录后再学习,可使用学习中心、个人中心等更完善的课程服务。立即登录>
关闭

分布式数据库DCDB开发指南

  • 1 课时
  • 6K 学过
  • 9 分
分布式数据库数据库数据库解决方案

课程概述

TDSQL是腾讯针对金融级联机交易场景推出的高一致性、分布式数据库集群解决方案。它具有高稳定性、高可用性等特点,获得了多项国际和国家认证,得到了客户及行业的一致认可。

本课程将介绍DCDB的整体框架,具体介绍DCDB的特性,包括支持的特性和暂不支持的特性,并详细对比DCDB和MySQL。课程还将介绍shardkey、数据拆分、数据聚合、DDL、DML、JOIN、分布式事务、二级分区、读写分离等关键概念。

【课程目标】

了解TDSQL的架构

了解TDSQL的特性

比较TDSQL和MySQL的区别

【适用对象】

商务、架构、开发、运维

【课程大纲】

知识模块

简介

布式数据库DCDB开发指南

布式数据库DCDB开发指南

适用人群

  • 云计算开发人员

机构简介

腾讯产业互联网学堂

腾讯云旗下面向云生态用户的一站式学习成长平台

讲义

课程目录

  • 背景介绍
  • 总体概括
  • 使用场景

Proxy能力简介

  1. 维护路由
  2. 解析转换SQL
  3. 把请求分发到相应的SET
  4. 聚合计算结果
  5. 应答用户

DCDB兼容MySQL的连接协议

业务连接DCDB和连接单机MySQL完全一样

已支持的特性

  • 提供了灵活的读写分离模式
  • 支持全局order by,group by,limit
  • 聚合函数支持sum,count,avg,min,max(其他聚合函数不支持)
  • 基于分组以及广播表实现常用的跨set的join
  • 支持预处理协议
  • 支持全局唯一字段
  • 支持分布式事务
  • 支持SSL加密传输
  • 提供特定sql查询整个集群的配置和状态

暂不支持的特性

  • 自定义函数
  • 视图,存储过程,触发器,游标
  • 外键,自建分区
  • 复合语句,如BEGIN END, LOOP,UNION等
  • 子查询,having字句

分表,即水平拆分表(又名shard表),分表默认需指定一个字段为shardkey

账户表:里面存储每个账户信息,建议以账户id作为分表键

shardkey的选择

主键以及所有唯一索引的一部分

建议选择业务特点和数据库中每张表里的实体关系,找到一个与大多数表都相关的实体(字段)作为拆分键

单表(又名Noshard表),主要用于存储一些无需分片的表:该表的数据全量存在第一个物理分片(set)中,语法和使用规范和mysql完全一样,可以理解为一个非分布式的表

广播表:即又名小表广播功能,设置为广播表后,该表的所有操作都讲广播到所有物理分片(set)中,每个分片都有改表的全量数据,常用于业务系统的配置表等。

写入数据时,必须带上shardkey值,否则系统不知道应该写到哪个分片

读取数据时,建议带上shardkey值,可以提高查询性能

DDL

  • 与MySQL语法一致,也支持alter table,增删索引等
  • 但不支持rename分表的排名,修改shardkey字段的名字;如有必要,需采用先加后删的方式
  • insert/replace 字段必须包含shardkey(即使value中使用全部字段),否则会拒绝执行该sql
  • select 最好带上shardkey,否则就需要全表扫描,然后网关进行结果集聚合,影响执行效率

JOIN

  • Shard表之间:shardkey相等
  • NoShard表之间:无限制
  • 广播表:与所有表都可以无限制JOIN

分布式事务

  • 基于两阶段提交实现
  • 业务使用和MySQL一样

二级分区

  • 支持range和list二级分区,支持数值,字符和时间类型,支持年月日三种函数
  • 支持增加,删除二级分区,语法和MySQL分区一样

全局唯一字段

  • 和MySQL自增字段语法一样
  • 保证全局唯一,不保证递增
  • 支持last_insert_id

数据库管理语句

  • /*proxy*/:查询集群状态
  • Explain:查询sql在proxy内部的转换流程

读写分离

  • 注释 业务增加slave注释标记,将指定的sql发往备机
  • 只读账号 该账号的所有sql都发到备机

SSL

  • 支持客户端和proxy之间的链路使用SSL加密

权限控制

  • 不支持grant,需要使用接口进行授权,参考OSS文档
  • 支持IP白名单
  • 支持SQL防火墙,参考数据防火墙
  • 权限控制和MySQL完全一样

课程评价(3)

感谢你参加本课程,请你作出评价:
0/300

以下选自学员评价

Er***xy
2018-10-24
讲的很好。在目前数据量不断增大的情况下,分布式数据库是大势所趋,但是目前功能上比起集中式的数据库,比如腾讯云cdb,还要差很多,希望可以尽快补齐这些功能,降低用户在不同数据库之间的使用门槛
那***丹
2018-07-14
初步了解
认***3
2018-07-09
非常实用~