823
微信
DRDS分库分表__开发手册_分布式关系型数据库 DRDS-阿里云
分库分表在 DRDS 里面是一个很重要的概念。DRDS 在后端将数据量较大的数据表水平拆分到后端的每个 RDS 数据库中,这些拆分到RDS中的数据库被称为分库,分库中的表称为分表。DRDS 由每个分库负责每一份数据的读写操作,从而有效的分散了整体访问压力。在系统扩容时,只需要水平增加分库的数量,并且迁移相关数据,就可以提高 DRDS 系统的总体容量。
分库分表相关概念
拆分键
即分库/分表字段。 DRDS 根据拆分键的值将数据表水平拆分到后端的每一个 RDS 分库里。换句话说,键值相同的数据,一定会位于同一个 RDS 数据库里。DRDS 里除了可以定义分库键以外,每一张逻辑表都可以定义自己的拆分键。拆分键暂时只能是单个字段。如果分库键与分表键相同,那么在插入时只需要指定该分库/分表键。如果分库键与分表键不同则在插入时需要同时指定分库键和分表键。
全表扫描
复杂的SQL语句会分发到所有库上执行,并且在 DRDS 中进行比较和合并。全表扫描相当消耗性能,应该在业务中尽量避免。
DML例子
1) 在 INSERT / REPLACE 语句中必须包含分库分表的字段(拆分键)。例如:
拆分字段是id
INSERT INTO table VALUES (‘name1’, ‘value2’)
报错
INSERT INTO table (id, name, value) VALUES (1, ‘name1’, ‘value2’)
允许执行
3) SELECT / UPDATE / DELETE 语句如果 WHERE条件中没有包含拆分字段,则会进行全表扫描。
举例:分库分表键是id + date.
SELECT * FROM table
会进行全表扫描
SELECT * FROM table WHERE date > 3
会进行全表扫描
SELECT * FROM table WHERE id = 1;
会路由到id为1的分库
SELECT * FROM table WHERE id = 1 AND date > 3;
进行路由计算
4) 同一个拆分字段,AND 连接的条件个数只能为2,OR 连接的条件个数不限。
举例:拆分键是date.
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’;
正确,date 字段 AND 连接的条件个数是 2。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’ AND date < ‘2014/2/28’;
错误,date 字段 AND 连接的条件个数是 3
注意 对于WHERE条件中的整型拆分字段,DRDS会对条件进行合并,如
SELECT * FROM table WHERE id > 1 and id < 5 and id < 3
不会出错,DRDS会调整为
SELECT * FROM table WHERE id > 1 and id < 3
5) 同一个拆分字段的条件可以包含多个值,但每个值只能对应一种比较关系。
举例:拆分键是date.
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/3/1’;
正确,date 字段两个条件的值分别是 ‘2014/1/30’ 和 ‘2014/3/1’。
SELECT * FROM table WHERE date > ‘2014/1/30’ AND date < ‘2014/1/30’
错误,date 字段的条件值 ‘2014/1/30’ 同时对应了大于和小于关系。
最后更新:2016-11-23 17:31:30
上一篇:
DRDS控制指令__开发手册_分布式关系型数据库 DRDS-阿里云
下一篇:
DRDS DDL语句__开发手册_分布式关系型数据库 DRDS-阿里云
定时任务__应用管理_用户指南_容器服务-阿里云
价格摘要___购买指导_DDoS 高防IP-阿里云
GroupDesc__数据类型_API文档_批量计算-阿里云
云盘三副本技术介绍__磁盘_产品简介_云服务器 ECS-阿里云
资源监控__用户指南_CDN-阿里云
InstanceStatusItemType__数据类型_API 参考_云服务器 ECS-阿里云
Linux Bash远程可执行漏洞(CVE-2014-6271)修复方法__漏洞扫描常见问题_产品常见问题_漏洞扫描-阿里云
C#/.NET: EnyimMemcached__客户端连接实例_快速入门_云数据库 Memcache 版-阿里云
查看磁盘的监控信息__监控相关接口_API 参考_云服务器 ECS-阿里云
功能总览__用户指南(RDBMS)_数据管理-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云