检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
算法举例 条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:3 % 7= 3 建表语法 create table test_week_tb ( id int, name varchar(30) DEFAULT
DDM是否支持数据类型强制转换 数据类型转换属于高级用法,DDM对SQL的兼容性会逐步完善,如有需要请提工单处理。 父主题: SQL语法类
定是连续递增的。 对使用DDM自增序列,不允许用户传null值以外的值,当用户不传或传null值时,DDM会默认分配,如果用户手工赋值会有和DDM分配自增键值冲突的风险。 表1 全局序列支持的表类型 表类型 拆分表 广播表 单表 基于DB的全局序列 支持 支持 不支持 创建自增序列
分库路由结果四舍五入到最接近的整数。 拆分键:2012-12-31 分库 :(2013 * 54 + 1) % (8*3) = 7 分库 :7 / 3 = 2 建表语法 假设用户的实例里已经分了8个物理库, 现有一个业务想按年周进行分库。要求同一周的数据都能落在同一张分表,并且两年以内的每个周都单独对应一
条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:15 % 31 = 15 建表语法 create table test_dd_tb ( id int, name varchar(30) DEFAULT
分库路由结果四舍五入到最接近的整数。 拆分键:2012-11-20 分表:(2012 * 12 + 11) % (8 * 3) = 11 分库 :11 % 3 = 3 建表语法 假设用户的实例里已经分了8个物理库,现有一个业务想按年月进行分库。要求同一个月的数据能落在同一张分表内,并且两年以内的每个月都单独对应一
hash(‘abc’)=‘abc’.hashCode()=96354 分表 :96354% (8 * 3) = 18 分库 :18 / 3=6 建表语法 如果用户需要对ID列按MOD_HASH函数进行分库不分表: create table mod_hash_tb( id int, name
HINT-DB/TABLE 命令格式: /*+db=<physical_db_name>,table=<physical_table_name>*/ TRUNCATE TABLE <table_name> 描述: 删除库名为<physical_db_name>下表名为<physi
(123456 >> 4) % 8 = 4 分表:((123456 >> 4) % 8) *3 + ((123456 >> 4)/8)%3= 13 建表语法 create table RIGHT_SHIFT( id int, name varchar(30) DEFAULT NULL, create_time
条件 算法 举例 无 分表路由结果 = 分表拆分键值 % 分表数 分表拆分键值 :2019-1-15 分表:15 % 366= 15 建表语法 create table test_mmdd_tb ( id int, name varchar(30) DEFAULT
分库路由结果四舍五入到最接近的整数。 拆分键:2012-12-31 分库 :(2012 * 366 + 366) % (8*3) = 6 分库 :6 / 3 = 2 建表语法 假设用户的实例里已经分了8个物理库,现有一个业务想按年日进行分库。要求同一天的数据都能落在同一张分表,并且两年以内的每一天都能单独对应一
自定义HINT读写分离 DDM提供HINT来指定SQL语句是在主实例上执行还是在只读实例上执行。 HINT支持以下两种格式: 格式一: /*!mycat:db_type=host */ 格式二: /*+ db_type=host */ 其中host可以是master或者slave
toUpperCase().hashCode()=64578 分表 :64578% (8 * 3) = 18 分库 :18 / 3=6 建表语法 如果用户需要对ID列按MOD_HASH_CI函数进行分库不分表: create table mod_hash_ci_tb( id int
column、modify column、drop column、add index、drop index、change column、add partition和drop partition。 示例: /*+ allow_alter_rerun=true*/ALTER TABLE aaa_tb ADD
SHOW PHYSICAL PROCESSLIST 命令格式1:展示后端rds的processlist。 show physical processlist 命令格式2:在命令1的结果集中过滤掉info列为空的数据,只展示info列不为空的结果。 show physical processlist
如何处理INSERT语句批量插入多条数据时报错 解决方案 建议拆分为多条INSERT语句插入。 父主题: SQL语法类
nextval、currval在全局序列的使用 nextval返回下一个序列值,currval返回当前序列值。其中nextval可以通过nextval(n)返回n个唯一序列值。 nextval(n)只能单独用在select sequence.nextval(n)场景下并且不支持跨库操作。
自定义HINT跳过执行计划缓存 DDM提供HINT来控制SELECT语句是否跳过缓存的执行计划。 HINT的格式为: /*!GAUSS:skip_plancache=flag */ 其中flag可以是true或者false,true代表跳过执行计划缓存,false代表不跳过。 目前只支持SELECT语句。
通过HINT指定分片直接执行SQL DDM提供HINT在一个或多个分片上执行SQL语句。 HINT支持以下两种格式: 一个分片上执行SQL:/*+db=<physical_db_name>*/ <your query>; 多个分片上执行SQL:/*+db={<physical_db_name1>
nextval”、“dml_test_1.seq_test.currval”。 全局序列结合insert和replace的使用只支持拆分表,不支持广播表和单表。 nextval和currval在insert和replace语句中是从左到右执行的,如果一条语句使用同一个全局序列nextval多次,每出现一次就递增一次。