DDL 拆分函数概述

DRDS DDL 拆分函数对分库分表的支持情况

DRDS 是一个支持既分库又分表的数据库服务。目前 DRDS 分库函数与分表函数的支持情况如下:

拆分函数描述是否支持用于分库是否支持用于分表
HASH简单取模
UNI_HASH简单取模
RIGHT_SHIFT数值向右移
RANGE_HASH双拆分列哈希
MM按月份哈希
DD按日期哈希
WEEK按周哈希
MMDD按月日哈希
YYYYMM按年月哈希
YYYYWEEK按年周哈希
YYYYDD按年日哈希
YYYYMM_OPT按年月哈希,改进型
YYYYWEEK_OPT按年周哈希,改进型
YYYYDD_OPT按年日哈希,改进型
  • DRDS 分库分表拆分方式的注意点

    • 在 DRDS 中,一张逻辑表的拆分方式是由拆分函数(包括分片数目与路由算法)与拆分键(包括拆分键的 MySQL 数据类型)共同定义

    • 只有当 DRDS 的分库函数与分表函数相同并且分库键与分表键也相同时,才会被认为分库与分表都使用了共同的拆分方式。这样的方式可以让 DRDS 可以根据拆分键的值唯一定位到一个物理分库与一张物理分表。

    • 当一张逻辑表的分库拆分方式与分表拆分方式不一致时,若 SQL 查询没有同时带上分库条件与分表条件,则 DRDS 在查询过程会产生全分库扫描或全分表扫描的操作。

DRDS DDL 拆分函数的数据类型支持情况

DRDS 的拆分函数对各数据类型对支持情况有所不同,下表显示了 DRDS 拆分函数对各种数据类型的支持情况(√ 表示支持,× 表示不支持):

shard_funcs

DRDS 的 DDL 拆分函数的语法说明

DRDS 兼容 MySQL 的 DDL 表操作语法,并添加了drds_partition_options的分库分表关键字如下:


 
  1. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
  2. (create_definition,...)
  3. [table_options]
  4. [drds_partition_options]
  5. [partition_options]
  6. CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
  7. [(create_definition,...)]
  8. [table_options]
  9. [drds_partition_options]
  10. [partition_options]
  11. select_statement
  12. drds_partition_options:
  13. DBPARTITION BY
  14. { {HASH|YYYYMM|YYYYWEEK|YYYYDD|YYYYMM_OPT|YYYYWEEK_OPT|YYYYDD_OPT}([column])}
  15. [TBPARTITION BY
  16. { {HASH|MM|DD|WEEK|MMDD|YYYYMM|YYYYWEEK|YYYYDD|YYYYMM_OPT|YYYYWEEK_OPT|YYYYDD_OPT}(column)}
  17. [TBPARTITIONS num]
  18. ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值