华为云用户手册

  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-DRStest 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区1 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-drs01 自定义,易理解可识别。 其他云MySQL 数据库版本 MySQL 5.7 - IP地址 10.154.217.42 仅作为示例。 端口 3306 - GaussDB (for MySQL)实例 实例名称 gauss-drstar 自定义,易理解可识别。 数据库版本 MySQL 8.0 - 可用区类型 单可用区 本示例中为单可用区。 实际使用时,为提升业务可靠性,推荐选择多可用区。 可用区 可用区一 本示例中为可用区一。 实际业务场景推荐选择多可用区,此时建议将实例创建在不同的可用区,提升业务可靠性。 性能规格 独享型 4 vCPUs | 16 GB - DRS迁移任务 迁移任务名 DRS-test-migrate 自定义。 源数据库引擎 MySQL - 目标数据库引擎 GaussDB(for MySQL) - 网络类型 公网网络 本示例中采用公网网络。 父主题: 其他云MySQL迁移到GaussDB(for MySQL)
  • 初始化磁盘 执行如下命令,创建mysql文件夹。 mkdir /mysql 执行如下命令,查看数据盘信息。 fdisk -l 回显如下: 执行如下命令,初始化数据盘。 mkfs.ext4 /dev/vdb 执行如下命令,挂载磁盘。 mount /dev/vdb /mysql 执行如下命令,查看磁盘是否挂载成功。 df -h 当显示如下回显时,表示挂载成功。 依次执行如下命令,创建文件夹并切换至install文件夹。 mkdir -p /mysql/install/data mkdir -p /mysql/install/tmp mkdir -p /mysql/install/file mkdir -p /mysql/install/log cd /mysql/install 下载并安装社区版MySQL,详情请参见如何下载并安装MySQL客户端。 执行如下命令,初始化mysql。 /mysql/install/mysql-8.0.22/bin/mysqld --defaults-file= /etc/my.cnf --initialize-insecure 执行如下命令,启动MySQL。 nohup /mysql/install/mysql-8.0.22/bin/mysqld --defaults-file= /etc/my.cnf & 执行如下命令,连接MySQL。 /mysql/install/mysql-8.0.22/bin/mysql 执行如下命令,创建root用户并授权。 grant all privileges on *.* to 'root'@'%' identified by 'xxx' with grant option;FLUSH PRIVILEGES;
  • 资源规划 表1 资源规划 类别 子类 规划 备注 VPC VPC名称 vpc-mysql 自定义,易理解可识别。 所属Region 华南-广州 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区3 - 子网网段 10.0.0.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-mysql 自定义,易理解可识别。 E CS -(MySQL 服务器) ECS名称 ecs-mysql 自定义,易理解可识别。 规格 s6.xlarge.2 4vCPUs|8GiB 本示例中选择的规格。 实际选择的规格需要结合业务场景选择,请参考弹性云服务器的实例规格。 操作系统 CentOS 7.6 64 - 系统盘 通用型SSD 40GiB - 数据盘 超高IO 100GiB - 弹性IP 现在购买 因为迁移任务会选择“公网网络”,因此此处需要购买弹性IP。 ECS-(MySQL客户端) ECS名称 ecs-client 自定义,易理解可识别。 规格 s6.xlarge.2 4vCPUs|8GiB 本示例中选择的规格。 实际选择的规格需要结合业务场景选择,请参考弹性云服务器的实例规格。 操作系统 CentOS 7.6 64 - 系统盘 通用型SSD 40GiB - 数据盘 不需要 - 弹性IP 现在购买 如果不需要通过公网访问客户端,也可以暂不购买弹性IP。 GaussDB(for MySQL) GaussDB(for MySQL)实例名 gauss-mysql 自定义,易理解可识别。 数据库引擎 GaussDB(for MySQL) - 兼容的数据库版本 MySQL 8.0 - 可用区类型 单可用区 - 可用区 可用区六 - 性能规格 独享版 - CPU架构 X86 8 vCPUs | 32GB - DRS迁移任务 迁移任务名 DRS-gaussdbformysql 自定义 源数据库引擎 MySQL 本示例中源数据库为自建MySQL,即在华为云弹性云服务器上安装社区版MySQL。 目标数据库引擎 GaussDB(for MySQL) 本示例中目标数据库为华为云GaussDB(for MySQL)实例。 网络类型 公用网络 本示例中采用公用网络。 父主题: ECS自建MySQL迁移到GaussDB(for MySQL)
  • GaussDB(for MySQL)产品优势 性能强悍:采用计算与存储分离,日志即数据架构,RDMA网络。对于某些业务负载,吞吐量最高可提升至开源MySQL7倍。 弹性扩展:1写15只读节点,分钟级添加只读实例,规格升降级。 高可靠性:跨AZ部署,数据三副本,共享分布式存储,RPO为0,秒级故障倒换。 安全防护:采用共享分布式存储,故障秒级恢复,数据0丢失;采用VPC、安全组、SSL连接和 数据加密 等严格控制安全访问。 高兼容性:兼容MySQL,应用无需改造即可轻松迁移上云。 海量存储:华为自研DFV分布式存储,容量高达128TB,。
  • 方案架构 本示例中,数据库源端为ECS自建MySQL,目的端为GaussDB(for MySQL)实例,同时假设ECS和GaussDB(for MySQL)实例在同一个VPC中。部署架构如图1所示。 如果自建MySQL和GaussDB(for MySQL)实例不在同一个VPC内,相比于相同VPC的情况,需要配置两个VPC的对等连接,部署架构图如图2所示。 图1 同一VPC的部署架构 图2 不同VPC场景的部署架构
  • 读请求路由到主实例的场景 如果查询语句被放在事务中,事务请求都会路由到主实例。如果在查询语句前设置set autocommit=0时也当做事务处理路由到主实例。 如果所有只读节点都均异常或只读节点权重为0时,则查询会路由到主实例。对于成功开启读写分离功能的实例,您可以设置其主实例和只读实例的权重。具体操作请参见读写分离权重。 在执行SQL语句时: 如果执行了Multi-Statements(如“insert xxx;select xxx”),当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 带锁的读操作(如SELECT for UPDATE)会被路由到主节点。 当使用/*FORCE_MASTER*/这个Hint语句时,会被路由到主实例。 如果执行了Handler语句,默认后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 父主题: GaussDB(for MySQL)读写分离最佳实践
  • GaussDB(for MySQL)最佳实践汇总 本文汇总了云数据库 GaussDB(for MySQL)服务的常见应用场景,并为每个场景提供详细的方案描述和操作指南,以帮助您轻松上手云数据库 GaussDB(for MySQL)。 表1 GaussDB(for MySQL)最佳实践汇总 分类 相关文档 数据迁移 ECS自建MySQL迁移到GaussDB(for MySQL) 其他云MySQL迁移到GaussDB(for MySQL) 安全性 GaussDB(for MySQL)安全最佳实践
  • 操作步骤 卸载旧版connector,注意软件包名使用的是下划线”_”。 zypper remove sap_suse_cluster_connector 安装新版connector,注意软件包名使用的是横线”-”。 zypper install sap-suse-cluster-connector 获取新安装的sap-suse-cluster-connector软件包版本信息。 /usr/bin/sap_suse_cluster_connector gvi --out version 执行以下命令,查看version文件,确认connector版本号不低于3.1.0。 cat /usr/bin/version
  • 语法 LOAD DATA LOCAL INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_name [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] ] [LINES [TERMINATED BY 'string'] ] [IGNORE number {LINES | ROWS}] [(col_name_or_user_var [, col_name_or_user_var] ...)]
  • 参数 file_name :要导入的本地文件的路径。 REPLACE | IGNORE : 指定遇到重复记录是替换还是忽略。 tbl_name :要导入的目标表名。 CHARACTER SET charset_name : 指定文件的编码,建议和GaussDB(for MySQL)实例上的编码一致,否则可能乱码。 FIELDS TERMINATED BY 'string' : 用来指定每列之间的分割符号,默认值为 \t 。 [OPTIONALLY] ENCLOSED BY 'char' : 用来忽略数据源字段中的符号。 LINES TERMINATED BY 'string' :可以指定行之间的换行符,默认值为 \n 。 有些windows上的文本文件的换行符可能为\r\n,由于是不可见字符,请仔细检查。
  • 原因分析 同一条SQL语句在数据库中执行第一次和第二次可能会性能差异巨大,这是由数据库的buffer_pool机制决定的: 第一次执行时,数据在磁盘上,称之为冷数据,读取需要一定的耗时。 读取完,数据会被存放于内存的buffer_pool中,称为热数据,读取迅速;对于热数据的访问速度极大的超过冷数据,所以当数据是热数据时,SQL语句的执行速度会远快于冷数据。 该场景中,源端数据库中常用的数据一般是热数据,所以访问时速度极快。当数据迁移到云上GaussDB(for MySQL)时,第一次执行同样的SQL语句,很可能是冷数据,就会访问较慢,但再次访问速度就会得到提升。
  • 使用mysqlbinlog工具获取binlog 本文以从弹性 云服务器ECS 上拉取为例,其他环境下方法类似。 在ECS上安装MySQL客户端,详情请参考安装MySQL客户端。 GaussDB(for MySQL)兼容社区MySQL 8.0及以上版本,请勿安装8.0以下版本的版本的客户端。 执行命令,下载binlog文件。 mysqlbinlog -hxxx -uxxx -Pxxx -pxxx binlog.xxxx --read-from-remote-server mysqlbinlog的常用参数: -h:数据库host。 -u:用户名。 -P:端口号。 -p:密码。 --start-position:表示从指定的起始位置开始解析。 --start-datetime:表示从指定的时间开始解析。 --stop-position:表示解析到指定的位置。 --stop-datetime:表示解析到指定的时间。 --skip-gtids:跳过打印gtid_log_event。 --short-form:表示只显示statements。 --result-file:将binlog解析生成sql文件。 --read-from-remote-server:远程下载binlog(用于mysqlbinlog与数据库服务端不再同一台机器的情况)。 父主题: 备份恢复
  • 解决方案 针对多值插入方式引起的OOM,建议减少单次插入数据量,分多次插入,且及时断开重连会话以释放内存。可执行show full processlist查看是否有明显占用内存高的会话。 合理设置SESSION级内存参数大小,可大体根据全局内存+会话级内存*最大会话数来预估可能最大的内存。注意开启“performance_schema”也会带来内存开销。 升级实例规格,将内存利用率维持在合理范围,防止业务突增导致实例OOM。
  • GaussDB(for MySQL)内存说明 GaussDB(for MySQL)的内存大体可以分为GLOBAL级的共享内存和SESSION级的私有内存两部分: 共享内存是实例创建时根据参数即分配的内存空间,并且是所有连接共享的。 私有内存用于每个连接到GaussDB(for MySQL)服务器时才分配各自的缓存,且只有断开连接才会释放。 低效的SQL语句或数据库参数设置不当都可能会导致内存利用率升高,遇到突发业务高峰时,可能会导致云数据库内存OOM(Out Of Memory)。
  • 原因分析 查看内存利用率监控指标,实例的内存使用率在16:30左右率突增,触发OOM后实例重启,内存使用率骤降。 图1 内存利用率 查看该时间段慢SQL数监控指标,确认该时间段慢SQL数量突增。 图2 慢SQL数 查看磁盘吞吐相关指标,发现磁盘此时有大量读写操作。 图3 磁盘吞吐 分析对应时间点的慢日志记录,该时间点有大量的多值批量插入语句,该插入方式会导致每个会话申请较多的SESSION级内存,并发高,很容易引起实例OOM。 图4 慢日志
  • 使用示例 创建表,准备数据。 CREATE TABLE test.hotspot1 ( `id` int NOT NULL primary key, `c` int NOT NULL DEFAULT '0' ) ENGINE=InnoDB; INSERT INTO test.hotspot1 VALUES (1, 1); 打开热点行更新开关。 SET GLOBAL rds_hotspot = ON; 修改隔离级别,AUTOCOMMIT。 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; SET SESSION AUTOCOMMIT = ON; 发起带HOTSPOT关键字的更新。 UPDATE test.hotspot1 SET c=c+1 WHERE id=1 HOTSPOT; 检查热点行更新状态。 SHOW STATUS like "%hotspot%"; 性能测试 测试环境 实例规格:8U32GB、32U128GB ECS规格:32U64GB 测试环境:华北-北京四 测试工具:sysbench-1.0.18 数据模型: 1张表,1条数据。 8张表,每张表1条数据。 参数配置: rds_hotspot=ON transaction_isolation=READ-COMMITTED max_prepared_stmt_count=1048576 rds_global_sql_log_bin=OFF 测试方法 测试所需数据表定义: CREATE TABLE sbtest (id int NOT NULL AUTO_INCREMENT,k int NOT NULL DEFAULT '0',PRIMARY KEY (id)); 测试语句: UPDATE sbtest%u SET k=k+1 WHERE id=1 hotspot; 测试场景和测试结果 测试场景1:8U32GB实例单个热点行更新 测试结果:所有并发均有不同程度提升,64并发及以下并发提升不明显,128并发及以上并发提升明显,最高提升9.26倍。 测试场景2:32U128GB实例单个热点行更新 测试结果:128并发及以上并发提升明显,最高提升639倍。 测试场景3:32U 128GB实例8个热点行更新 测试结果:256及以下并发无提升,512及以上并发提升效果明显,最高提升78倍。
  • 新增关键字 新增标记语句的关键字如下: 表3 新增关键字 关键字 描述 HOTSPOT 表示开启热点更新功能。 NOT_MORE_THAN 可选项。表示目标值不大于某值。 NOT_LESS_THAN 可选项。表示目标值不小于某值。 上述关键字放置在SQL语句末尾。HOTSPOT必须在最前面,NOT_MORE_THAN和NOT_LESS_THAN没有位置前后的要求。 例如:假设id是主键列,c是int类型列,那么支持以下语法: UPDATE c=c+1 where id=10 HOTSPOT; UPDATE c=c+1 where id=10 HOTSPOT NOT_MORE_THAN 100; // c值不大于100 UPDATE c=c-1 where id=10 HOTSPOT NOT_LESS_THAN 0; // c值不小于0 UPDATE c=c+1 where id=10 HOTSPOT NOT_MORE_THAN 100 NOT_LESS_THAN 0; // c值不大于100,不小于0 UPDATE c=c+1 where id=10 HOTSPOT NOT_LESS_THAN 0 NOT_MORE_THAN 100; // c值不大于100,不小于0 当超过NOT_MORE_THAN或者NOT_LESS_THAN的限制时,会向客户端报如下错误: HOTSPOT field value exceeds limit
  • 参数说明 表1 参数说明 参数名称 参数说明 rds_hotspot 热点行更新优化开关。将其设置为ON将启用热点行更新优化。 rds_hotspot_follower_wait_commit_interval 热点行更新follower事务等待leader事务日志持久化时,进入阻塞前的睡眠时间。单位:微秒。对日志持久化速度慢的实例,建议调大。对于持久化快速的实例,建议设置为0,不休眠直接阻塞。 rds_hotspot_leader_wait_follower_interval 热点行更新leader事务等待follower更新记录的时间单位。单位:微秒。低并发适当调低可以避免性能下降。高并发适当调高可以提升性能。当QPS超过20w时,建议将该值设置为100或者更大。 rds_hotspot_auto_detection_threshold 热点行更新的自动识别功能开关。设置为0表示不启用自动识别功能。设置为非0表示热点行更新的识别阈值。当某个符合热点行要求的行每秒更新次数超过阈值时将启动热点行更新功能。 rds_hotspot_batch_size_lower_limit 每批热点事务大小的建议最小值。每个batch尽可能达到该大小。但是,这并不是严格保证的。当leader发现所有需要等待的follower都已经到达时,batch就进入提交状态。 rds_hotspot_max_memory_size 热点行更新中group和counter占用的内存上限。当group占用的内存超过限制时,将清空group所占用的内存。当counter占用的内存超过限制时,将清空counter所占用的内存。申请新的内存时才会尝试清空旧内存。 rds_hotspot_enable_time_statistics 是否开启热点行更新的时间相关的状态统计功能。将其设置为ON以启用该功能。
  • 约束与限制 GaussDB(for MySQL)实例的内核版本为2.0.54.240600及以上时支持使用该功能。 功能使用约束如下: where条件中只能使用主键或唯一索引的等值匹配,并且只能更新单条记录。否则将绕过优化正常更新。 不允许修改索引列,否则将绕过优化正常更新。 只对修改列为整数的更新生效,否则将绕过优化正常更新。 只允许对热点行记录进行两个元素的加减操作,且第一个元素与等号左侧相等并满足唯一索引等约束,不允许赋值操作。假设c列为待修改列,d为记录的普通列,那么只允许进行类似c=c+1,或者c=c-1的操作,不允许进行c=d+1,c=1+c,c=c+1+1,c=1+c+1等操作。否则将绕过优化正常更新。 只允许对隐式事务生效。即要求AUTOCOMMIT为ON,并且不在BEGIN,COMMIT显示开启的事务中使用。否则将绕过优化正常更新。 需要使用HOTSPOT显式标记热点行更新事务,或者将rds_hotspot_auto_detection_threshold设置为非0,开启热点行更新自动识别功能。否则将绕过优化正常更新。rds_hotspot_auto_detection_threshold的详细用法请见参数说明。 只对RC级别生效。数据库处于其他隔离级别时将绕过优化正常更新。 无法在stored function, trigger以及event中使用,否则将对客户端报如下错误: HOTSPOT hints can not be used in stored function, trigger or event 行为变更: 一个hotspot事务组内,除了执行失败或者在更新阶段killed的事务外,其他事务被按批次集中提交,集中记录redo log和undo log,只能集中提交或者回滚,无法单独回滚。每个批次提交的事务个数为几十到几百个不等。
  • 状态说明 表2 状态说明 状态 说明 Hotspot_total_trx 使用hotspot总事务数 Hotspot_update_errors 更新阶段出错的热点行更新事务,这些出错的事务只会自己更新失败,不会影响其他热点行更新事务的提交。 Hotspot_trx_rollbacked 更新成功,但是由于最终回滚的热点行更新事务数量。当队长(leader)决定回滚时,所有组员(follower)跟着一起回滚。 Hotspot_trx_committed 提交成功的热点行更新事务数量。 Hotspot_batch_size 热点行更新事务分批次提交。该值表示当前批次热点行更新事务的数量。 Hotspot_batch_wait_time 热点行更新按批次持有锁和提交事务。此时间为当前热点行更新批次等待上一批次释放锁的时间,单位微秒。 Hotspot_leader_wait_follower_time 在一个批次中leader需要等待follower完成记录更新,此时间为当前批次leader等待follower的时间,单位微秒。 Hotspot_leader_total_time 当前批次leader的热点行更新事务总时间,单位微秒。 Hotspot_follower_total_time 当前批次某一个follower的热点行更新事务总时间,单位微秒。 Hotspot_follower_wait_commit_time 在一个批次中follower需要等待leader持久化日志,此时间为当前批次某一个follower等待leader持久化日志的时间,单位微秒。 Hotspot_group_counts 每个热点行更新对应一个组,组内事务分批次提交。该值为使用热点行更新的组数。 Hotspot_counter_counts counter用于自动判断热点行更新。当counter中的统计值满足要求时,将会创建group使用热点行更新。该值为counter的总数。
  • 原理介绍 GaussDB(for MySQL)热点行更新的架构如下图所示:分为Counter_hash,Group_hash两部分。其中Counter_hash主要用于实现热点行的自动判断。Group_hash是热点行的实际实现部分,由多个Hotspot group组成。每个Hotspot group对应一个热点行,每个Hotspot group由多个batch组成,交替为热点行提供批量提交服务。
  • 2.0.28.15 表10 2.0.28.15版本说明 日期 特性描述 2023-01-11 新特性 支持SQL限流。 读流控优化。 主备执行计划一致优化。 slice异步预创建。 问题修复 修复系统变量INNODB_VALIDATE_TABLESPACE_PATHS关闭情况下undo space truncate的时候出现的crash问题。 修复查询information_schema.innodb_trx较慢问题。 修复查询结果不一致的问题:left joins没有转化为inner joins。 修复优化子查询的过程中导致的crash问题。 修复并发instantDDL和DML场景下未按实际获取instant字段值的问题。 修复当load有FTS索引的两个INNODB表时可能导致OOM的问题。 修复更新百万级别的表的数据字典可能导致OOM的问题。
  • 2.0.28.1 表16 2.0.28.1版本说明 日期 特性描述 2022-05-16 新特性 GaussDB(for MySQL)增加orphaned definer check控制开关。 GaussDB(for MySQL)支持Proxy IP透传。 GaussDB(for MySQL) Proxy提供会话一致性功能。 问题修复 修复主机DDL未提交导致的备机dd(data dictionary)未更新问题。 修复故障切换的主机的auto increment回退的问题。 修复备机性能异常问题。
  • 2.0.48.231200 表3 2.0.48.231200内核版本说明 日期 特性描述 2024-01-30 新增功能和性能优化: 组合分区能力增强:在社区MySQL的RANGE-HASH、LIST-HASH两类组合分区能力基础上,增加了RANGE-RANGE、RANGE-LIST、LIST-RANGE、LIST-LIST、HASH-HASH、HASH-KEY、HASH-RANGE、HASH-LIST、KEY-HASH、KEY-KEY、KEY-RANGE、KEY-LIST的组合分区能力。 向前兼容MySQL 5.7 GROUP BY场景隐式/显式排序。 向前兼容MySQL 5.7 max_length_for_sort_data判据,优化特定场景文件排序性能。 优化因执行计划选错导致访问information_schema下视图较慢的问题。 PQ支持EXIST子查询。 优化库表或实例按时间点恢复性能。 问题修复: OPENSSL版本升级。 修复time_zone参数默认值SYSTEM会导致部分场景SQL并行执行效率降低的问题。 修复一类条件部分下推到物化derived table时,SQL查询结果不准确的问题。 修复部分场景磁盘hash join开启PQ后性能劣化的问题。 修复控制台赋予用户数据库权限后,通过非控制台的方式删除此数据库,权限页面未更新的问题。
  • 2.0.28.16 表9 2.0.28.16版本说明 日期 特性描述 2023-03-14 新特性: 优化主备时延。 修复问题: 修复prepare statement中使用json相关函数处理错误问题。 修复指定过滤条件查询结果不返回的问题; 修复WINDOWS函数生成磁盘临时表后,出现空指针异常问题。 修复windows functions空指针使用导致的crash问题。 修复prepared statements执行失败的问题。
  • 2.0.42.230600 表5 2.0.42.230600内核版本说明 日期 特性描述 2023-08-31 新增功能和性能优化: 优化全量与增量备份放到备库进行,减少主机内存/CPU占用。 优化UNDO损坏场景的快速定位:启动undo损坏时,明确打印出undo损坏和对应表名称。 优化备机查询性能劣后于主库问题。 优化in-list转临时表。 NDP特性规模商用。 用Statement Outline方法稳定执行计划。 PQ特性支持Round函数。 问题修复: 修复快速排序和优先级队列排序算法不稳定导致ORDER BY LIMIT与ORDER LIMIT结果集有重合的问题。 修复PQ语句极小概率情况返回错误结果的问题。 修复部分场景PREPARE语句执行报错的问题。 修复部分场景UNION查询上的PQ断言错误的问题。 修复实例主节点INSERT大数据量的时候只读升主,升主成功后用全文索引查询的结果不准确的问题。 修复备机使用general_log和slow_log表打印warning日志的问题。 修复部分场景设置锁等待时间参数innodb_lock_wait_timeout后,实际超时等待时间不一致的问题。 修复只读升主过程中,小概率出现Failed to find page in slice manager导致升主失败的问题。 修复salsql日志pwal扫描进度percentage值大于100%的问题。 修复执行sqlsmith工具, 查询语句在explain阶段偶现mysqld coredump。 修复SELECT DISTINCT + CAST函数转换datetime类型为float类型时,结果不正确的问题。
  • 2.0.39.230300 表6 2.0.39.230300版本说明 日期 特性描述 2023-05-11 新特性及优化: 支持小规格实例。 备机DDL失效方案优化。 SALSQL使用空间容量计算优化。 支持对单个SQL语句使用资源进行限制。 支持admin port和local socket使用per thread。 pwalScanner内存优化。 支持修改default_collation_for_utf8mb4参数。 支持大事务检测能力。 支持Kill idle transactions。 优化增量恢复速度。 新增数据库描述和账号描述。 支持buffer pool resize加速。 问题修复: 修复Ptrc可能会导致Nestedloop join的结果不一致问题。 修复使用windows函数进行排序的子查询可能会导致crash问题。 修复使用rewrites view时,如果评估可能会把left joins转化为inner joins问题。 修复指定过滤条件的decimal类型的数据不返回结果问题。 修复内存非对齐问题。 修复全量日志中记录scan_row不准确问题。
  • 2.0.28.9 表13 2.0.28.9版本说明 日期 特性描述 2022-09-23 修复在Condition_pushdown::replace_columns_in_cond中使用不正确的条件判断的问题。 修复递归调用存储函数之后导致数据库崩溃的问题。 修改多表删除和full-text搜索的时候导致数据库崩溃的问题; 修复运行多个窗口函数的SQL查询语句之后导致数据库崩溃的问题; 修复具有全局级别权限的用户,执行SHOW CREATE DATABASE失败的问题。
  • 2.0.45.230900 表4 2.0.45.230900内核版本说明 日期 特性描述 2023-11-24 新增功能和性能优化: 优化datatime/timestamp/time字段行为向前兼容。 优化PQ支持并行磁盘hash join场景。 启用并行INSERT/REPLACE SELECT的功能优化查询速度。 增加连接建立/断开日志打印,提高定位连接相关问题效率。 优化慢日志中增加对慢SQL问题定位有用的信息,提升定位慢SQL定位效率。 支持动态开启Binlog。 优化NDP bloom过滤器。 支持使用CAST(... AS INT) 语法。 优化Nested Loop Join + Distinct 性能。 优化快速识别慢IO对应的slice id。 增加sal_init日志,后续出现存储接口超时,时延可定位性增强。 问题修复: 修复全量SQL中缺少trx_id和cpu_time字段的问题。 修复prepare语句中where比较时,字段是int类型、参数是字符串导致转换有误的问题。 修复备机上DDL与查询的并发访问时,极小概率导致crash的问题。 修复Binlog数量短期暴涨未及时清理的问题。 修复多表JOIN SQL语句打开PQ开关后,可能出现执行结果不一致的问题。 修复Backwad Index Scan与ICP无法兼容导致查询性能不及预期的问题。 修复weight_string函数不支持level子句的问题。 修复特殊场景下,相同的SQL语句选用不同的索引得出结果不一致的问题。 修复部分场景下,同时开启NDP和PQ特性recycle lsn长时间不推进的问题。
  • 2.0.31.220700 表17 2.0.31.220700版本说明 日期 特性描述 2022-08-12 新特性及性能优化 支持SQL限流。 新增FasterDDL并行数限制。 支持Faster DDL的所有ROW格式。 扩展全量SQL字段。 优化流量控制。 支持ALTER TABLE快速超时。 支持Query plan cache。 备机统计信息优化。 问题修复 修复主机rename partition-table之后备机crash的问题。 修改sql tracer的默认buffer size。 修复备机truncate lsn落后很多情况下备机拉起失败的问题。 修复含有多个相同范围的SQL查询导致的执行计划错误的问题。 修复空账户导致的crash的问题。 修复drop database可能导致的crash的问题。
共100000条