云服务器内容精选

  • 支持的RDS for MySQL版本 建议您使用最新小版本的实例在线扩展varchar类型字段。更多操作,详见升级内核小版本。 表1 在线扩展varchar类型字段支持的版本 varchar类型字段长度 RDS for MySQL 5.6 RDS for MySQL 5.7 RDS for MySQL 8.0 长度小于256字节 不支持 支持 支持 长度跨越256字节长度 支持 支持 不支持 长度大于256字节 不支持 支持 支持
  • 扩展分类 长度小于256字节的varchar类型字段的在线扩展 create table t1(a varchar(10)); Query OK, 0 rows affected (0.03 sec) alter table t1 modify a varchar(100),ALGORITHM=INPLACE, LOCK=NONE; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warning: 0 长度跨越256字节长度的varchar类型字段的在线扩展 create table t1(a varchar(100)); Query OK, 0 rows affected (0.05 sec) alter table t1 modify a varchar(300),ALGORITHM=INPLACE, LOCK=NONE; Query OK, 0 rows affected (0.11 sec) Records: 0 Duplicates: 0 Warning: 0 长度大于256字节的varchar类型字段的在线扩展 create table t1(a varchar(300)); Query OK, 0 rows affected (0.08 sec) alter table t1 modify a varchar(500),ALGORITHM=INPLACE, LOCK=NONE; Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warning: 0
  • Statement Outline表介绍 GaussDB(for MySQL)内置了一个系统表(outline)保存Hint,系统启动时会自动创建该表,无需您手动创建。创建表的SQL语句如下: CREATE TABLE `mysql`.`outline` ( `Id` bigint(20) NOT NULL AUTO_INCREMENT, `Schema_name` varchar(64) COLLATE utf8_bin DEFAULT NULL, `Digest` varchar(64) COLLATE utf8_bin NOT NULL, `Digest_text` longtext COLLATE utf8_bin, `Type` enum('IGNORE INDEX','USE INDEX','FORCE INDEX','OPTIMIZER') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `Scope` enum('','FOR JOIN','FOR ORDER BY','FOR GROUP BY') CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '', `State` enum('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'Y', `Position` bigint(20) NOT NULL, `Hint` text COLLATE utf8_bin NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0 COMMENT='Statement outline'
  • 需求背景 在业务混部场景中,Linux内核调度器需要为高优先级任务赋予更多的调度机会,并需要把低优先级任务对内核调度带来的影响降到最低。原有的在线、离线两级混部调度无法满足业务需求。 为解决此问题,HCE OS 2.0内核cpu cgroup支持多级混部调度,提供cgroup接口/sys/fs/cgroup/cpu/cpu.qos_level将任务调度级别扩展到5个级别,支持用户对每个cgroup组单独设置优先级。
  • 功能特点 表1 INNODB_ALTER_TABLE_PROGRESS表字段详解 字段 说明 THREAD_ID 线程ID QUERY ALTER TABLE SQL语句内容 START_TIME DDL开始时间 ELAPSED_TIME 已执行的时间(s) ALTER_TABLE_STAGE 当前执行的内容 STAGE_COMPLETED 已完成的工作单位 STAGE_ESTIMATED 预估的工作单位 一个DDL从开始到结束可能有下面几个阶段(ALTER_TABLE_STAGE字段的值): stage/innodb/alter table (read PK and internal sort):读取主键。 stage/innodb/alter table (merge sort):根据主键排序,这个过程可能较慢,因为会有临时文件生成。 stage/innodb/alter table (insert):将排序后的数据插入表中。 stage/innodb/alter table (log apply index):将DDL过程中客户执行的DML日志应用到本次创建/修改的索引。 stage/innodb/alter table (flush):数据刷盘。 stage/innodb/alter table (log apply table):将DDL过程中客户执行的DML日志应用到本次创建/修改的表。 stage/innodb/alter table (end):结束阶段。
  • 逻辑订阅完整使用示例 发布端创建表 create table tableName(id int primary key, num int); 发布端创建发布 create publication pubName for table tableName; 发布端创建一个Failover Slot(若为PostgreSQL12或13版本,则去掉第四个参数false) SELECT * FROM pg_create_logical_replication_slot('slotname', 'pgoutput', false, false, true); 发布端插入数据 insert into tableName values(1,1); insert into tableName values(2,2); 订阅端创建表 create table tableName (id int primary key, num int); 订阅端创建订阅,指定创建的Failover Slot名称 create subscription subName connection 'host=192.168.0.10 dbname=postgres user=root port=5432 password=xxxxxxx' publication pubName with(copy_data=true,create_slot=false,slot_name= slotname); 订阅端查询数据,验证数据是否订阅到 select * from tableName; 主备切换 发布端继续插入数据,在订阅端查看,逻辑订阅不会断开。
  • 使用场景 RDS for PostgreSQL的逻辑订阅故障转移(Failover Slot)功能用来将那些指定为failover slot的逻辑复制槽信息从主实例同步到备实例,当主备切换之后逻辑订阅能够继续进行,实现逻辑复制槽的故障转移。 当用户使用逻辑复制时,由于slot信息不会随着主备切换转移到新的主实例上,一旦实例发生主备切换,逻辑订阅就会断开,此时除非手动重新创建slot,否则逻辑订阅无法重新连接。RDS for PostgreSQL的Failover Slot功能可以将所有的logical slot从主实例同步到备实例,避免主备切换后逻辑订阅断开。
  • 使用方法 在发布端执行如下SQL,创建一个Failover Slot: 表1 命令及参数说明 版本 命令 参数说明 PostgreSQL12和PostgreSQL13版本 SELECT * FROM pg_create_logical_replication_slot('slotname', 'pgoutput', false, true); slotname表示logical slot的名称。 pgoutput表示plugin的名称,也可以更改为其他支持的插件。 第三个参数(例如false),表示该slot是否为临时slot。 第四个参数(例如true),表示该slot是否为Failover Slot。 PostgreSQL14及以上版本 SELECT * FROM pg_create_logical_replication_slot('slotname', 'pgoutput', false, false, true); slotname表示logical slot的名称。 pgoutput表示plugin的名称,也可以更改为其他支持的插件。 第三个参数(例如false),表示该slot是否为临时slot。 第四个参数(例如true),表示是否启动两阶段提交选项。 第五个参数(例如true),表示该复制槽是否为Failover slot。 因此,如果要创建一个Failover Slot,在第三个参数临时slot字段必须为false,最后一个参数必须为true。如果最后一个参数省略不写,则创建的是非Failover Slot。
  • 应用场景 并行查询适用于大部分SELECT语句,例如大表查询、多表连接查询、计算量较大的查询。对于非常短的查询,效果不太显著。 轻分析类业务 报表查询通常SQL复杂而且比较耗费时间,通过并行查询可以加速单次查询效率。 系统资源相对空闲 并行查询会使用更多的系统资源,只有当系统的CPU较多、IO负载不高、内存够大的时候,才可以充分使用并行查询来提高资源利用率和查询效率。 数据频繁查询 针对数据密集型查询,通过并行查询,可以提高查询处理执行效率,减少网络流量和计算节点的压力。 并行查询特性当前处于公测阶段,建议在测试环境使用。