版本说明
如何查看 DRDS 实例的版本号
通过控制台查看
在实例的基本信息中可以查看当前实例的版本号,如图:
通过 version() 函数查看
通过 MySQL 命令行、DMS 等工具连接 DRDS,执行SELECT version()
可以查看 DRDS 版本,例如:
- mysql> select version();
- +-----------------------------+
- | VERSION() |
- +-----------------------------+
- | 5.6.29-TDDL-5.1.28-1320920 |
- +-----------------------------+
- 1 row in set (0.00 sec)
其中 5.1.28-1320920 为 DRDS 的版本号。
如何升级 DRDS 实例版本
DRDS 实例版本可自助升级,具体操作请参考 升级实例版本升级实例版本。
V5.4.3-15791082 日期2020-01-16
新功能
- 新增 DML 语句的 CPU 统计及 SQL 日志指标的打印
- 新增 SQL日志增加 arows 属性(逻辑SQL的所有物理DML的影响行数)
问题修复
- 修复 产生一个物理分片的 SQL 查询的 ptc 与 frows 统计错误问题的问题
- 修复 JOIN HINT 与回表算子的兼容性问题
- 修复 LIMIT 存在时 CBO 异常下推 Filter 的问题
- 修复 USE/IGNORE INDEX 指定无效索引时错误下推到物理 SQL 中的问题
- 修复 Filter 下推对子查询 ApplyCache 的支持
优化
- 优化 启动时统计信息加载效率
- 优化 SET NAMES 指令对 utf8mb4 兼容编码的处理效率
V5.4.3-15788850 日期2020-01-13
新功能
- 新增全局二级索引自动索引选择,详情请参考 索引选择
- 新增通过 USE INDEX / IGNORE INDEX 限制候选的全局二级索引
- 新增通过 UPDATE 语句更新全局二级索引索引表的拆分键
- 新增全局二级索引索引校验,详情请参考 CHECK GLOBAL INDEX
- 新增支持在 BKAJOIN 中进行动态分区裁剪
- SHOW PROFILE 命令增加显示计划的并行度及 TRACEID
- 新增支持 SET tx_isolation = ‘…’ 语法
问题修复
- 修复跨库 INSERT SELECT 的偶发性 OUT_OF_MEMORY 问题
- 修复统计信息列大小写敏感问题
- 修复部分下推 SQL EXPLAIN EXECUTE 返回结果为空的问题
- 修复 LENGTH\IF\IFNULL 函数的结果类型推导
优化
- 改进 DDL 任务引擎的稳定性、易用性和性能
- 优化单条 SQL 运行过程中的 CPU 统计准确性
V5.4.2-15760771 日期 2019-12-12
新功能
- 支持 通过 CANCEL DDL 暂停创建全局二级索引的数据回填子任务
问题修复
- 修复 主表拆分函数为 UNI_HASH 时创建全局二级索引失败的问题
- 修复 节点列表刷新导致创建全局二级索引数据回填异常的问题
- 修复 纯异步模式下创建全局二级索引报错的问题
- 修复 CREATING 状态的全局二级索引导致执行计划校验报错的问题
- 修复 性能信息收集过程中有概率出现的三个内存问题
v5.4.2-15749091 日期 2019-11-28
问题修复
- 修复主表带 agg,以及有 project 中的子查询时,关联项 ID 丢失问题。
- 修复 show stc 指令丢失 dbname 和 ipport 信息问题。
v5.4.2-15744202 日期 2019-11-22
新功能:
- DRDS支持RDS for MySQL 8.0与POLARDB for MySQL 8.0
- 新增对SQL进行CPU及内存消耗分析功能,可通过 SHOW PROFILE [CPU|MEMORY] [FOR QUERY X]命令分析
- SHOW PROCESSLIST新增SQL的CPU消耗与内存消耗信息
问题修复
- 修复TIME类型及相关函数兼容问题
- 修复一些类型相关的推导问题
优化
- 优化BATCH INSERT性能
- 优化全局二级索引数据回填并行化,提升回填速度
v5.4.1-15731181 日期 2019-11-07
新功能:
- 新增支持创建全局二级索引、创建全局唯一索引、查看全局二级索引语法,CREATE GLOBAL INDEX, CREATE UNIQUE GLOBAL INDEX, SHOW GLOBAL INDEX
- 新增动态调整DRDS连接时区功能
- 新增支持逻辑 RENAME TABLE,提高 RENAME TABLE 性能;
- 新增CREATE SHADOW TABLE语法,用于创建和关联全链路压测影子表
- 新增UPDATE/DELETE 对DERIVED子查询的支持
- 新增CBO,JOIN与AGG下推与交换能力
- 新增SHOW METADATA LOCK 查看DRDS METADATA LOCK信息
- 新增支持PLAN MANAGEMENT运维指令
- 新增支持CREATE TABLE WITH GLOBAL INDEX和CREATE GLOBAL INDEX的回滚
- 新增CREATE TABLE、DROP TABLE关联未完成全局二级索引的检查并提示
- 新增支持指定JOB ID执行SHOW DDL
- 新增支持非等值的条件推导
- 新增PARALLEL QUERY对更多算子并行的支持
优化:
- 优化规则自动清理任务执行
- 优化INFORMATION_SCHEMA查询性能
- 优化BKAJOIN COST估算算法
- 优化DDL后更新统计信息、BASELINE逻辑
- 优化两阶段AGG逻辑,支持GROUP BY列
- 优化 DRDS 事务日志的清理策略,减少清理时间,降低对后端存储的访问压力
- 优化ADDTIME、SUBTIME、DATEADD、DATESUB、INTERVAL等函数中微秒精度计算
- 优化 SQL审计日志减少网络抖动的影响
- 优化器内支持创建DOUBLE类型的LITERAL。
- 优化下推的 GROUP BY 查询避免生成子查询
- 优化聚合函数内部实现,内存占用更低、性能更优
- 优化 CBO 对常量表达式的选择率估计
- 优化DDL相关解析,增强错误检查能力
- 优化部分涉及时间类型的表达式计算中对异常时间的处理,兼容MySQL行为
问题修复
- 修复回收站启用后,表名中包含特殊符号导致 RENAME TABLE 报错的问题
- 修复PlAN MANAGEMENT线程池抛ABORT异常问题
- 修复HashAggCursor处理不同类型输入HASHCODE不准确问题
- 修复BETWEEN与NOT BETWEEN处理问题
- 修复HashAggExec内存统计问题
- 修复写入广播表时的函数计算出错问题
- 修复使用高版本 JDBC 驱动连接 MANAGE PORT报错的问题
- 修复UPDATE/DELETE 条件中包含库名导致报错的问题
- 修复UPDATE/DELETE SET 部分有重名列导致报错的问题
- 修复LEFT JOIN + IS NULL 导致分区裁剪异常的问题
- 修复INSERT SELECT 偶发的不支持错误的问题
- 修复全局二级索引表名、拆分键、DDL回滚表名中包含特殊字符问题
- 修复SQL中HINT和COMMENT多层嵌套时解析异常
- 修复建表语句DEFAULT后加COLLATE的解析错误问题
- 修复非法日期时间格式解析的问题
- 修复 CONVERT函数转换HEX到字符乱码的问题
- 修复SUBSTRING、SUBSTRINGINDEX、JSONEXTRACT等函数传递NULL参数异常的问题
- 修复 CONNECTION_ID()与SHOW RPOCESSLIST不一致的问题
- 修复子查询表名同外表一致时出现的异常
- 修复子查询转化过程中CASE WHEN 函数的类型问题.
- 修复 PROJECT中多个子查询下推时的转换问题.
- 修复包含JOIN 的列重名问题.
- 修复部分列找不到误报未表找不到的问题
- 修复查询时ORDER BY不存在的列导致的StackOverflow 问题
- 修复WHERE 条件中存在 CASE WHEN且 WHEN 表达式存在 AND 条件下的下推错误问题
- 修复当JOIN左右表存在不可下推的PROJECT时,进行JOIN_PROJECT_TRANSPOSE导致的问题
- 修复当TIMESTAMP类型作为拆分键时会因时区导致分片路由错误的问题
v5.3.12-15708775 日期 2019-10-12
新功能:
- 新增Chunk-Based执行器,查询优化复杂查询
- 新增SQL执行计划管理(Plan Management)
- 新增新的DDL任务引擎,支持DDL任务的查看、恢复和回滚等功能
- 新增通过 FORCE INDEX HINT 方式指定查询使用某个索引的功能
- 新增非SCALAR子查询中ROW函数支持
- 新增DATE_FORMAT、INTERVAL等时间函数转义字符完整支持
优化:
- 主实例默认开启基于代价的优化(CBO),自动选择 Join 顺序和算子实现
- 优化更多类型的子查询(含 SemiJoin)及下推
- 合并事务指令与应用业务 SQL 执行,减少后端数据库网络通讯,提升事务性能
- 优化内部线程池的参数配置
- 优化DRUID连接池在后端RDS异常情况下快速恢复
问题修复:
- 修复SQL解析的算术优先级问题
- 修复HASH JOIN部分场景下的连接泄漏问题
- 修复一元运算符物理SQL报错
- 修复LOCK TABLE单库无法正确执行问题
- 修复DRDS对SAVE POINT的支持
- 修复MD5函数,HEX函数和MySQL不兼容的问题
- 修复SELECT USER(), DATABASE() LIMIT 1报错的问题
- 修复MERGE_UNION=FALSE 并发行为不符合预期的问题
- 修复多个AND的日期范围查询,查询路由结果不正确的问题
- 修复RENAME TABLE时忽略目标库名的问题
- 修复管理员账户无法查看所有用户权限的问题
- 修复主实例并行度Cost会低概率出现计算不准的问题
- 修复清理脚本导致日志滚动异常
- 修复 UPDATE/DELETE 单表语句中存在表名引用时,下推物理 SQL 报错的问题
- 修复不含ORDER BY的LIMIT语句因为内存限制的报错问题
- 修复多个AND条件查询结果不一致的问题
- 修复UPDATE包含子查询时的报错信息
- 修复DISTINCT和ORDER BY中同时出现函数同时的解析问题
v5.3.11-15663020 日期 2019-08-20
问题修复
- 修复物理 RT 监控不准的问题
- 调整工作线程数配置
v5.3.11-15622313 日期 2019-07-04
新功能
- 优化分析型只读实例基于CBO进行JOIN重排及物理执行策略
- 优化分析型只读实例全表扫描速度
- 优化 INSERT / REPLACE / UPDATE / DELETE 语句的性能
问题修复
- 修复并发KILL命令导致用户无法链接DRDS的问题
- 修复原表自增主键存在0值,同步到DRDS报错问题
- 修复多表UPDATE报错
- 修复用户存在视图时,SHOW TABLES 报错问题
- 修复表名过长管控无法显示以及无法删除的问题
- 修复多库权限的账号无法同时使用Navicat的问题
- 修复COMPRESS协议下用户查询的结果集过大时卡死的问题
- 修复AVG函数参数为TIMESTAMP类型时的查询报错
- 修复ROUND函数返回类型问题
- 修复SHOW NODE读写次数超过整型上限问题
- 修复部分DDL以及语句解析报错问题
- 修复建带库名的广播表报错的问题
- 修复特殊场景下物理SQL优化导致分片计算异常的问题
- 修复ADMIN账户SHOW GRANTS无法看到全部用户权限的问题
- 修复多列IN只有一列有值时的报错问题
- 修复单表LOCK TABLES导致的系统异常
- 修复INSERT中拆分键有函数,EXPLAIN报错问题
v5.3.10-15585948 日期 2019-05-23
新功能
- 优化带拆分键的查询性能
- 优化连接池特性,增加KEEP ALIVE支持
- 新增对PARALLEL QUERY的支持
- 新增SCALAR关联子查询支持UNSIGNED类型
- 支持ALTER SEQUENCE支持跨SCHEMA
- 支持SEQUENCE的NEXTVAL时的带有WHERE查询,如:SELECT test.NEXTVAL FROM DUAL WHERE COUNT=10
问题修复
- 修复DESC时带有SCHEMA名称时,执行报错的问题,如:DESC
DB
.ORDER
- 修复只读实例执行SHOW TABLE STATUS报错问题
- 修复XA RECOVER只读实例导致部分事务回滚的问题
- 修复时间类型拆分函数枚举日期缺失的问题
- 修复DISTINCT与ORDER BY子句混用执行报错问题
- 修复复杂查询下的COLUMN ‘S’ NOT FOUND问题
- 修复复杂查询下的COLUMN ‘ID’ IS AMBIGUOUS问题
- 修复CURRENT_DATE为列名时建索引报错问题
- 补全相关SHOW HELP帮助说明
v5.3.9-15557587 日期 2019-04-20
新功能
- 支持并行DDL
- 重构的系统变量支持,如:SELECT @session.tx_read_only
- 子查询结果支持物化
- SHOW STATUS支持事务的统计
- 优化IN/NOT_IN子查询在某些场景下的性能
- 支持SELECT后的AGGREGATE和表达式的嵌套使用
- EXPLAIN MySQL 物理执行计划展示
问题修复
- 修复ALTER SEQUENCE时默认行为为GROUP,而非AUTO_INCREMENT
- Convertor error by Unsupported 问题修复
- syntax error ‘CHARSET=utf8 BLOCK_FORMAT=ENCRYPTED COMMENT问题修复
- 修复单表场景下ALTER TABLE ADD自增主键错误创建了SEQUENCE的问题
- 修复了一些开启事物场景下导致报错的问题,提升事物兼容性
- 数据库插入YEAR类型非法字段成功,导致SELECT语句出错
- 修复 CREATE TABLE … PARTITION BY RANGE COLUMNS 报错问题
- 修复索引表规则存在同名脏数据时,创建包含二级索引的表异常的问题
- 修复流量型只读实例上默认创建系统表导致报错的问题
- 修复DECIMAL函数的一些BUG
V5.3.8-15517870 日期 2019-03-05
新功能
- 映射规则支持
- show full processlist 语句可携带 where 条件
- 跨 Schema(数据库) 支持
- 支持跨 Schema 查询
- bushy join 可跨 Schema
- 支持跨 Schema 的 DML 语法
- 支持跨 Schema的 XA 事务
- 支持跨 Schema 的 DAL 语法
- 支持跨 Schema 使用 Sequence
- 支持
USE DB_NAME
进行跨 Schema 访问
- 增加对 Prepare 协议支持
问题修复
- 优化 show tables 指令,解决以往 show tables 执行缓慢的问题
- 修复以时间拆分列的取值为 NOW() 函数时可能的跨分片错误问题
- 修复 CONVERT(column USING gbk) 报错 “Unknown datatype name ‘gbk’” 的问题
- 修复 Interval 表达式不支持字段的问题,如:DATE_FORMAT(DATE_ADD(MAX(table.column),interval table.column DAY),’%Y-%m-%d’)
- Insert 里面有 case when 报 NPE 问题修复
- 修复 Hint:Allow full table scan = false 不生效问题
V5.3.7-15460044 日期 2018.12.28
新功能
- 优化白名单/密码导致登陆失败提示信息
- 优化多表 JOIN,物理 SQL 生成多余子查询导致性能问题
- 支持 JOIN 下推顺序调整,优化 JOIN 性能
- 根据表行数调整内存 JOIN 顺序
- 支持逻辑库锁功能
- 优化执行器获取连接时,可能的多次执行 SET NAMES utf8mb4 的问题
- SHOW VARIABLES 性能优化
- 支持显示的 Prepare 和 Execute 语法
- SHOW FULL PROCESSLIST 时 SQL 显示不全问题修复
- 增加 HINT 支持表间并行执行模式
问题修复
- 修复 SQL 如:~1 函数报错问题
- 修复导入(Import数据库)数据库报错,以及导入后建表报错问题
- 多表 JOIN 报错如:(index (16) must be less than size (16))
- 修复 SCAN HINT 对 LIMIT 处理不符合预期的问题
V5.3.6-15447056 日期 2018.12.13
问题修复
- 修复 用户自建账号查询 information_schema 报错,影响 DMS 及部分 GUI 工具使用的问题
- 修复 Filter-Join 结构执行计划下推不够精确,导致部分查询性能下降的问题
- 修复 特殊场景下生成的物理 SQL 中包含冗余子查询,导致未能使用 MySQL 索引的问题
- 修复 UNION 优化导致部分场景下生成异常物理 SQL 的问题
- 修复 相关联子查询生成物理 SQL 时的一个别名问题
- 修复 特殊场景下 LIMIT 穿透 JOIN 下推后查询结果异常的问题
- 修复 SHOW CREATE TABLE 未显示分表算法的问题
- 修复 建表时无法在 UNI_HASH 中指定字符串列的问题
V5.3.6-15439241 日期 2018.11.29
新功能
- 支持 为单个账户授予多个数据库权限,使用 USE DATABASE 切换数据库并执行 SQL
- 支持 SELECT 语句中,全部的列子查询和 WHERE 中的子查询
- 支持 Apply 子查询算子,允许嵌套执行无法转为 JOIN 的子查询
- 支持 HashBKAJoin 算子
- 支持 下推执行多表 UPDATE/DELETE 语句
- 支持 下推执行地理信息函数
- 支持 异构索引表加列顺序检测,避免 DDL 导致索引表同步异常
- 支持 IPv6
问题修复
- 优化 禁止使用 BINARY 类型作为拆分键,避免数据插入时自动补0导致查询异常
- 优化 全链路压测 PARSER 性能
- 修复 NODE HINT + LIMIT 下发错误 SQL,导致查询异常的问题
- 修复 部分条件未能下推,导致 LEFT JOIN 性能低问题
- 修复 部分场景下 BKA JOIN + LIMIT 执行异常的问题
- 修复 Simple Sequence 设置最大值时,越界的问题
- 修复 CREATE TABLE 对已存在表且带有 IF NOT EXISTS 关键字时报错问题
V5.3.5-15423348 日期 2018.11.20
问题修复
- 修复 并发策略选择导致部分场景下排序结果异常的问题
- 修复 NODE HINT 与 LIMIT 兼容性问题导致部分场景下结果异常的问题
- 修复 事务策略清理机制变化导致部分场景下 DTS 任务异常的问题
- 修复 BATCH INSERT 在部部分场景下执行异常的问题
- 修复 BATCH INSERT 特殊转义字符处理报错的问题
V5.3.5-15409153 日期 2018.10.30
新特性
- 优化 大幅降低 BATCH INSERT 内存占用,增强数据导入稳定性
- 优化 INSERT 并发策略,解决后端连接占用过高的问题
- 支持 完整的 GROUP_CONCAT 语法
- 支持 STR_HASH 哈希函数,兼容 DRDS 5.2 所有 HASH 函数
- 支持 UPDATE 语句中使用别名
- 支持 ON DUPLICATE KEY UPDATE 语法中指定表名
- 支持 下推执行 JSON 相关函数
- 支持 CONVERT(X, SIGNED) 语法
- 支持 JOIN USING 语法
问题修复
- 修复 物理SQL 中包含子查询时,JOIN 重复列名报错问题
- 修复 OUTLINE 相关细节问题
- 修复 TO_DAYS 函数时间遇到闰年返回值与 MySQL 不一致的问题
- 修复 建表主键、拆分键列名为关键字导致报错的问题
- 修复 INSERT SELECT 特殊语法报错的问题
- 修复 ORDER BY/GROUP BY 中同时包含函数导致执行计划异常的问题
- 修复 BIGINT 列在结果集中表示为 DECIMAL 的问题
- 修复 SHOW FULL TABLES FROM LIKE 报错的问题
- 修复 SHOW DATABASE 语句中包含换行符导致报错的问题
V5.3.4-15378085 日期 2018.09.20
新特性
- 支持 同步更新广播表,基于XA事务多写,无需异步数据同步
- 支持 全局事务策略等多种动态参数,可通过控制台设置
- 使用 XA 作为默认事务策略
问题修复
- 支持 SET @@SESSION.BINLOG_ROWS_QUERY_LOG_EVENTS
- 修复 BIT 类型问题
- 修复 BKAJoin + UNION 优化导致 JOIN 查询报错的问题
- 修复 Scalar 子查询的类型匹配问题
- 修复 SEMI/ANTI 执行器中 CURRENT() 方法未实现的问题
- 修复 不支持CURRENT_TIMESTAMP 特殊写法的问题
V5.3.3-1670435 日期 2018.8.15
全新特性
- 支持DRDS的XA事务;
- 支持单元化 Group Sequence。
问题修复
- 修复存在 HINT 时,没有正确设置 ThreadLocal 变量导致 NPE 的问题;
- 修复特殊场景下子查询条件上拉失败,导致全表扫描的问题;
- 修复子查询中拆分键条件提取失败导致全表扫描的问题;
- 修复计算物理分片时没有考虑 BETWEEN … AND 的情况,导致全表扫描的问题;
- 修复可直接下推RDS的 For update SQL可能走了备库的问题;
- 修复 SELECT @@session.tx_read_only 返回值与MySQL不一致的问题;
- 修复算术表达式在某些情况下计算结果不正确的问题;
- 修复处理 0000-00-00 00:00:00 时间戳的取值报错的问题;
- 修复 NESTLOOP JOIN在数据较大的情况下可能导致 OOM 的问题;
- 修复存在DRDS HINT在部分查询场景会导致 NPE 的问题;
- 修复开启事务时,DRDS与RDS之间进行变量传递引发的报错问题;
- 修复SQL前加入多段DRDS的HINT时SQL解析器会报错的问题;
- 修复物理慢SQL输出不正确的物理表表名的问题;
- 修复因算子计算量过大,引发协程过度占用CPU,并影响IO响应的问题;
- 修复UNIX_TIMESTAMP() 函数不支持不带函数的形式,且带参数之后结果均为 NULL的问题;
- 修复UNI_HASH对于bigInt unsigned及int unsigned的路由不正确的问题;
- 修复Insert带HINT指定物理分库物理分表报表会表不存在的问题;
- 修复单库单表建表时错误走GroupSequence的问题;
- 修复Druid连接池在某些特殊情况下的Fail-Fast恢复异常所导致”because null”报错,并引发连接泄漏问题;
- 修复SQL的limit子句被参数化导致物理SQL查询报错的问题,取消Limit子句参数化;
- 优化MysqlDump 兼容性问题处理,支持MySQL可执行HINT;
- 优化MysqlDump 兼容性问题处理,支持MySQL单行注释“—”;
- 优化精确选择 BKAJoin 算法的规则,解决不可下推 JOIN 内存占用过高的问题;
- 修复 INSERT VALUE 中包含转意字符时,下发SQL报错的问题;
- 修复 LEFT JOIN 条件推导不全,导致分片分片计算报错的问题;
- 修复驱动表较大时 BKAJoin的 StackOverFlow 的问题;
- 修复因Union查询优化没及时关闭连接导致连接泄漏问题;
- 修复特殊拆分规则导致拆分键大小写不匹配的问题;
- 修复类型相关的元数据存在的内存泄漏问题;
- 修复参数化缓存在SQL执行后没及时清空占用内存的问题;
- 修复涉及到UNI_HASH/RANGE_HASH/RIGHT_SHIFT三个拆分函数的跨库JOIN查询执行计划不正确下推并导致报错的问题;
- 修复SQL执行后返回JDBC的库名的meta信息不正确导致DMS/DTS操作报错的问题;
- XA事务校验set drds_transaction_policy的语句必须放在事务开始前,否则报错。
V5.3.2-1645122 日期 2018-7.05
- 修复带有Outline的SQL在高并发场景下会因出现无法生效并产生不合预期的执行计划的问题;
- 修复事务中的单个物理库的SELECT因使用并行查询策略导致拿物理连接报错的问题。
V5.3.2-1623342 日期 2018-5.25
新特性
- INSERT / UPDATE / DELETE 语句支持 5.2/5.3 版本 HINT;
- 完善原生事务对 XA 事务的支持。
问题修复
- 修复结果集元信息中表名不正确的问题;
- 修复部分数据类型精度和范围异常的问题;
- 修复使用 Direct HINT 且仅指定部分逻辑表名时报错的问题;
- SHOW NODE 只统计读请求比例;
- 修复分库不分表情况下,关键字作为表名时查询异常的问题;
- 修复多 UNION 查询异常;
- 修复单表 INSERT,last_insert_id 返回 0 的问题。
V5.2.8-15432885 日期 2018.11.27
问题修复
- 修复当 UNION 可能性出现Error问题
- 修复多语句 UPDATE 返回的影响行数为0的问题
- 修复 Connection because null 问题
- 修复对于特殊查询 sql 鉴权失败问题
- 支持 2PC 分布式事务策略
- 只在满足 MySQL version > 5.6 以后才允许执行 XA 事务
- 兼容分布式事务中的 INSERT/REPLACE … SELECT 语句
- 减少清理 DRDS 事务日志的周期和数据保留时间,降低 RDS 存储空间占用
- 修复 SHOW FULL TRANS LIMIT x 命令的问题
V5.2.7-1638709 日期 2018.6.25
问题修复
- 修复某些情况下会看到 Cannot find post-values for some PK 这个报错;
- 修复 SHOW TABLE STATUS 的平均行数的精度显示问题.
V5.2.7-1623038 日期 2018.5.24
问题修复
- 修复指定分库HINT不支持以时间函数为拆分键;
- 修复 SHOW TABLE STATUS 字段数值越界问题;
- 修复添加表权限表名大小写问题;
- 修复 YYYYDD 拆分函数在建表时跨年报错问题;
- 修复 YYYYMM 拆分函数对NULL值异常问题;
- 修复建表时 TIMESTAMP 类型精度问题。
V5.2.7-1606682 日期 2018.4.27
新特性
- 支持DRDS原生分布式事务,无须依赖其它外部组件,详情请参考 DRDS分布式事务;
- 支持 SHOW TRANS 命令查看事务状态;
- 支持SSL加密功能;
- 支持单元化 Group Sequence。
问题修复
- 修复物理连接池初始化失败后导致的连接泄漏的问题;
- 修复当物理连接池初始化失败会导致的频繁反复建连接的现象;
- 修复临时表排序在处理 null 值会报错的问题;
- 解决分库分表键键取值如 “_utf8’xxx’” 前缀类型会报错的问题;
- 修复MySql Driver因默认的sharedSendBuffer过大导致物理连接占用内存过多并在数据导入等场景引发FGC的问题。
V5.2.6-1556951 日期 2018.2.6
问题修复
- 修复事务及 GTS 事务中的读 SQL 会被路由到备库的问题;
- 修复 DRDS 自定义 HINT 不能同时作用于多张逻辑表(如 JOIN 的 SQL 语句)的问题;
- 修复 DDL 在部分并发场景下执行会报 “Lock wait timeout” 异常,导致 DDL 无法正常完成的问题;
- 修复一个 DB 在被多个 DRDS 实例同时引用时会出现的实例间的建(删)表结果不一致的问题;
- 修复因低版本的Fastjson安全缺陷造成的 DRDS 安全风险问题;
- 修复 DRDS 的 LAST_INSERT_ID() 返回值情况与 MySQL 不完全一致的问题。
V5.1.28-1508068 日期 2017.12.15
新特性
- 支持用户查询一张逻辑表下的各个物理分表的数据分布情况,请参考文档统计信息查询类语句;
- 新增拆分函数 UNI_HASH,能让分库数一样的两张表的 JOIN 保持为非跨库 JOIN,不再受到分表数目的影响;
- 增加支持 ISNULL() 函数;
- 优化权限相关的 SQL 错误提示,与 MySQL 保持一致;
- 支持只读库因同步延迟过大自动切断流量并回流主库的功能。
功能优化
- 优化执行器的列查找性能,INSERT/REPLACE 的吞吐提升 14%;
- 优化 JVM 的启动参数,CPU 消耗降低 5%;
- 优化 SQL 类型识别的算法性能;
- 改进跨库查询归并排序的算法性能;
- DDL 建表的组合索引的第一列包含拆分键时将不再重新单独为拆分列自动建索引。
问题修复
- 修复关联子查询中引用的外部字段在直接下推时拼错的问题;
- 修复 GTS 事务超过 100 记录列更新新的事务无法回滚的问题;
- 修复查询结果单个字段值过大会导致连接被意外关闭的问题;
- 修复若干 DRDS 后端连接池的一些连接泄漏问题和部分连接异常场景下不能自动恢复的问题;
- 修复超长 HINT 报数组越界的问题;
- 修复建表时 TIMESTAMP 类型的列指定为 NULL DEFAULT NULL 导致无法建表的问题;
- 修正部分错误码的英文翻译;
- 修复
STR_TO_DATE()
函数返回的时间类型与 MySQL 不一致的问题; - 修复通过 Prepare 协议调用存储过程时传 NULL 值会报类型转换不正确的异常;
- 修复频繁设置连接编码会导致的内存泄漏问题;
- 修复在使用 GTS 事务之下执行 InsertSelect 出现读可见性不一致的问题;
- 修复带 DISTINCT 的 JOIN 语句在新版本 DRDS 报 Column is ambiguous 的问题;
- 修复 “((x) IS TRUE) IS TRUE” 语句执行报错的问题;
- 解决 DISTINCT 在部分跨库 JOIN 场景下会出现报错的问题;
- 修复分库分表情况下聚合函数查询带 LIMIT 时返回结果不正确的问题;
- 解决 BigDecimal 类型在类型转换过程会消耗大量 CPU 的问题;
- 修复 SHOW FULL STATS 连接数不准确的问题;
- 修复 SHOW FULL STATS CPU,内存不准确的问题;
- 修复当前端连接过多且因流控被堵塞在 Read 时,JVM 的临时内存 Buffer 出现堆积和泄漏的问题;
- 修复个别多语句处理场景中包含 ROLLBACK 语句可能导致的 NPE 错误;
- 修复 SHOW VARIABLES LIKE “autocommit” 显示的值不正确的问题;
- 修复 ResultSet.getObject 方法获取 tinyint(1) 类型的数据,返回结果类型跟 MySQL 不一致的问题。
V5.1.28-1408022 日期 2017.09.15
新特性
- 支持逻辑连接的 SHOW PROCESSLIST 与 KILL,详见 SHOW PROCESSLIST Syntax;
- 支持 INSERT INTO … SELECT < sequence_name >.nextVal [ , … ] FROM DUAL 语法;
- 支持 OPTIMIZE TABLE 语法,其作用请参考 Optimize Table;
- 增加对 ODBC 的支持;
- 增加 ANSI_QUOTE 类型 SQL_MODE 的支持,详见 MySQL SQL Mode;
- GROUP BY、ORDER BY、HAVING 子句中出现的函数不再必须出现在 SELECT 中;
- 分布式事务中,SELECT last_txc_xid(timeoutMillisecond) 支持指定超时时间。
功能优化
- 优化复杂 LIMIT 查询的性能;
- 优化 str2date 函数对时分秒的支持;
- 优化 json_set、json_object、json_extract、json_unquote、json_remove、json_merge、json_keys、json_replace、json_insert 函数在复杂 SQL 中的支持;
- 提升对 Navicat 的兼容性。
问题修复
- 修复 SHOW FULL STATS 的元信息类型错误的问题;
- 修复单库单表下 INSERT INTO … ON DUPLICATE KEY UPDATE … 语句报错的问题;
- 修复因实例过期续费再次使用时,建表失败的问题;
- 修复 DRDS 分库分表条件中拆分键为整数类型的负数条件查询报错的问题;
- 修复执行时表找不到的问题;
- 修复 DRDS 单库单表时因 LOCK、UNLOCK 语句导致数据无法导出的问题;
- 修复部分场景下中文表名时乱码的问题;
- 修复分布式事务中 FOR UDPATE 查询返回数据错误的问题。
V5.1.28-1349132 日期 2017.08.10
问题修复
- 修复新增 DB 关键字,导致无法使用 DB 作为列名/表名,并且影响 Navicat 从 DRDS 导入/导出数据的问题;
- 修复字符串类型拆分键的哈希值出现负最大值时会导致路由结果不正确的问题;
- 修复 SHOW FULL SLOW 指令在一些情况下会报 SLOW 表不存在的问题;
- 修复 Server Prepare 协议下,有小概率出现权限校验错误的问题;
- 修复使用拆分函数 RIGHT_SHIFT 和 RANGE_HASH 的拆分表在 INSERT 时,某些情况下出现的多语句无法执行的问题。
V5.1.28-1320920 日期 2017.07.18
新特性
- 支持 RENAME TABLE 功能;
- 增加了创建拆分表时新规则函数和多列规则的支持,详见双字段哈希拆分;
- 支持 REPLACE INTO SELECT 的用法;
- 增加了能够展示分库容量的 SHOW DB STATUS 命令,详见统计信息查询类语句;
- 支持 KILL ALL 命令批量中断慢 SQL 执行,详见 SHOW PROCESSLIST 指令与 KILL 指令;
- DRDS 控制台支持 RDS 5.7 时使用非拆分模式建库;
- DRDS 升降配后能够自动调整内部连接池的大小;
- DRDS 专有网络 vswitch 支持跨可用区;
- 通过 DRDS 控制台切换至 VPC 网络后,自动清理 DRDS 白名单;
- 改进了 DRDS 控制台在一些场景下的显示内容和提示信息。
问题修复
- 修复了高并发场景下偶发的客户端与 DRDS 连接意外中断(MySQL server has gone away)的问题;
- 解决了 DRDS 频繁执行 DDL 时,偶发出现的 DDL 执行中会挂起而无法恢复的问题,并提升了 DDL 的执行性能;
- 修复了通过 DRDS OPEN API 创建实例时返回 400 错误的问题;
- 解决了子账号通过 DMS 连接/登录 DRDS 的问题;
- 修复了 DRDS 控制台建库过程中,系统表创建失败导致的 DRDS 实例无法释放的问题;
- 修复了无法在 DRDS 控制台中从 VPC 网络切换回经典网络的问题。
V5.1.27-1282781 日期 2017.06.26
功能优化
- 默认禁止全表删除与全表更新的高危操作,可以通过加 HINT 临时跳过此限制,详见高危类 SQL 自动保护;
- 账号和权限功能调整:用户名长度范围改为 2-20,允许出现下划线字符;
- SHOW SLOW 和 SHOW FULL SLOW 指令显示结果中添加用户信息;
- 单表查询支持 LIMIT 0 优化;
- DELETE 语句的 ORDER BY 部分支持子查询;
- 在 SQL 日志中添加标识由哪个账号执行的信息。
问题修复
- 修复不含分号的语句被当成多语句执行的问题;
- 修复 SELECT 语句常量列设置别名导致提示列找不到的问题;
- 不缓存长度超过 2000 字节的 SQL 语句, 避免占据内存导致性能下降。
V5.1.27-1217986 日期 2017.05.23
功能优化
- 修复 DRDS 建表时库名带上引号的报错问题;
- 修复 DRDS 建表时 TIMESTAMP 类型带上 on update current_timestamp 子句的报错问题;
- 修复 DRDS 控制台删除只读账号后不生效的问题;
- 修复 SQL 强制指定权重为0的只读实例进行查询的报错问题;
- 修复 DRDS 默认打参数化日志导致性能下降的问题;
- 修复 Group Sequence 更新系统 Sequence 表日期字段无效的问题。
V5.1.26-1502740 日期 2017.02.24
新特性
- 分布式账号和权限系统发布,支持企业级数据库帐号和资源管理;
- 新增 Time-based Sequence;
- 扩展 Sequence 语法,支持创建不同类型的 Sequence(默认为 Group Sequence),支持修改 Sequence 的类型。
功能优化
优化 Simple Sequence 性能。
V5.1.26-1037257 日期 2017.02.16
功能优化
- 修复激活访问 RDS 无法授权问题;
- 修复 RDS 使用 MySQL5.7 无法建库问题;
- 修复 DRDS 实例平滑扩展出错问题;
- 支持自助优化连接池参数。
V5.1.26-970482 日期 2017.01.10
新特性
- 支持自助优化连接池参数;
- 用户自助切换 DRDS 网络类型为 VPC 新功能;
- 控制台显示分库容量比例,方便用户确定库容方案;
- 控制台支持自建 MySQL 或者 RDS 平滑导入数据到 DRDS。
V5.1.26-9024000 日期 2016.12.13
新特性
- 控制台接入分布式全局事务,用户可以通过 DRDS 开通分布式事务。
V5.1.26-866978 日期 2016.11.24
新特性
- DRDS 控制台增加实例监控,包含 CPU、网络 、物理 QPS、逻辑 QPS、连接数、活跃线程数;
- 新增 CPU 报警,第一时间发现 CPU 瓶颈,升配解决资源瓶颈;
- 增加 DRDS 慢 SQL 明细,随时查看实例慢 SQL。
V5.1.25-791778 日期 2016.10.09
新特性
- 支持服务端限流保护实例(默认不打开);
- 中文表名和列名支持;
- 支持大小写敏感 Collation 类型;
- 支持 LIMIT row_count OFFSET 语法;
- 分布式事务升级到 2.0.17,支持超时时间、隔离级别动态配置。
性能优化:
- 优化第一次访问 DRDS 的性能;
- UPDATE 和部分查询语句局部性能优化。
问题修复:
- 修复子查询中多重 JOIN 列查找问题;
- 修复 SET 指令导致连接污染问题;
- 修复 SQL 语句中含有 Long.MIN_VALUE 导致溢出的问题;
- 修复数字类型的列错传了一个含有非常大的科学计数法数据的子字符串导致内存溢出的问题;
- 修复了唯一序列相关的几个问题;
- 修复了含有 GROUP BY 函数的子查询报错的问题;
- 修复 VARBINARY 类型的列在系统编码是 GBK 的情况下,取数据的结果会和数据库中的不一致的问题;
- 修复 LEFT JOIN 中含有子查询时丢失条件导致查询结果不正确的问题;
- 修复了部分场景下长 SQL 会导致内存溢出的问题;
- 包年包月实例变配前,需要检查用户是否创建了 RAM 角色;
- 修复了部分场景下分布式事务内存溢出问题。
V5.1.24-653395 日期 2016.07.26
新特性
- Sequence 支持全局有序自增,并提供增量、最大值等功能和相应语法的支持;
- 支持 to_days 函数;
- DRDS 支持包年包月购买;
- 接入 RAM 主子账户。
功能优化
- 完善库存不足、数据导入失败的告警信息;
- 数据导入状态查询增加自动重试。
Bug 修复情况
- 修改 USE 语句含有”;”解析出错 Bug;
- 修复 SELECT 、UPDATE 等语句在 WHERE 条件中含有单个条件且是永假式,WHERE 条件会丢掉 Bug;
- 修复升降配检查实例数上限的问题;
- 修复包年包月到期锁定共享实例的问题;
- 修复升降配失败时无法告警的问题;
- 数据导入移除对源表的外键检查;
- 数据导入检测目标表是否包含外键。
V5.1.24-826 日期 2016.05.24
新特性
- 数据拆分列的字段类型增加支持 BigDecimal 类型;
- 支持 Now(3)/Now(2)/Now(1) 函数;
- 增加只读账户 Open API;
- 增加修复 RDS 后端链接功能。
功能优化
- VPC 实例显示 VPC 地址。
Bug 修复情况
- 修复高并发访问 DRDS 后端连接长时间不会自动回收的问题;
- 修复后端连接池在主备切换后会出现概率性无法恢复的问题;
- 修复 Sequence 的缓存清除不干净,导致 Sequence 不可用的问题;
- 修复 INSERT SELECT 语句在广播表存在的情况下不会下推分片执行的问题;
- 修复 BigDecimal 类型的浮点数精度不会显示为指数的问题;
- 修复部分存储过程调用会导致连接进入不可恢复状态;
- 修复 SET @session.sql_log_bin=0 语句会导致连接池污染的问题;
- 修复开启 TXC 功能后 SQL 报错信息会显示异常的问题;
- 修复部分 DDL 执行过慢问题;
- 修复部分 Count(Distinct) 语句出现数据重复的问题。
V5.1.23-783 日期 2016.04.12
新特性
- 控制台新增 DRDS 实例级别监控;
- 控制台增 DRDS 诊断建议,提前发现实例异常;
- 控制台新增 DRDS 实例 DB 拓扑;
- 控制台新增 DRDS 数据库概览;
- 提供 SHOW FULL SLOW | PHYSICAL_SLOW 指定,支持慢 SQL 明细的查询;
- 支持按用户指定单个 RDS 上的分库数量。
功能优化
- 变配失败后立即修复实例,不需要手动修复;
- 建库等待时间延长至半小时,解决等待 RDS DB 创建超时问题;
- 数据库列表页面删库,自动刷新。
V5.1.23-742 日期 2016.03.22
新特性
- 支持 now(3)/now(6) 这种函数用法;
- 支持非拆分模式下自定义函数执行;
- 支持非拆分表的 SELECT sql_calc_found_rows 与 SELECT found_rows 语法;
- 读写分离,支持多个只读实例之间的 failover 机制;
- 异常连接快速回收机制,比如识别 RDS 锁定状态,访问失败等;
- 支持 CHECK TABLE 语法,检查所有分片表结构一致性;
- 增加应用状态统计信息 SHOW STATS;
- 支持 yyyymm 分区。
功能优化
- 优化 DDL 执行过慢问题;
- 完善 INSERT SELECT 语法的下推优化;
- 全局 ID 优化为大小写不敏感;
- 慢 SQL 统计优化,增加连接获取时间和 SQL 执行时间,支持过滤条件分析。
Bug 修复情况
- 修复 PREPARE 协议对于大文本对象解析的问题;
- 修复多表 JOIN 连接条件推导无效的问题.
V5.1.22-675 日期 2016.02.23
功能优化
- 建库输入库名后实时进行校验;
- 共享实例迁移 DB 到专享实例,自动刷新 RDS 白名单;
- Open API 建库刷新 RDS 白名单;
- 使用 RDS 高权限账号建库,扩容;
- 升降配过滤掉状态不正常的 RDS 实例;
- 数据导入支持 DECIMAL 类型和 DATE 类型的表主键;
- 数据导入切换时自动修改 Sequence;
- 设置实例读写比例时刷新只读实例的白名单;
- 自动恢复失败的数据导入任务。
V5.1.22-614 日期 2015.12.08
新特性
- 支持查看一个表非精确数据量;
- HINT 支持过滤条件;
- SCAN HINT 支持 EXPLAIN 语句,支持使用 EXPLAIN 查看所有分片上的执行计划;
- 支持 MySQLDump;
- 支持 MySQL 地理字段类型 geometry;
- 支持 INSERT SELECT 语句;
- 支持 GROUP_CONCAT 函数;
- 支持 GROUP BY 语法。
Bug 修复
- 修复只读账号不支持 SET 语句的问题;
- 修复 DELETE 语句中存在嵌套子查询,子查询中列无法找到的问题;
- 修复在 SELECT * FROM (UNION) WHERE 语句中,WHERE 条件丢失的问题;
- 修复建分库分表时,同时存在分库分表字段时,如果分库分表字段一个带反引号,一个不带,SQL 解析列名错误的问题;
- 修复 SQL 中存在大量 OR 条件时内存占用过多的问题;
- 修复当 SQL 中 GROUP BY/DISTINCT/AGGREGATE 和 LIMIT 混用时结果错误的问题;
- 修复 LEFT OUTTER JOIN 中如果广播表在左边结果集错误的问题;
- 修复 SET sql_mode=””会报错的问题。
V5.1.22-580 日期 2015.10.27
新特性
- 控制台新增 DRDS 数据库只读账号管理;
- 公有云支持域名作连接串。
功能优化
- 只读账户密码修改支持短信确认;
- 开启读写分离时,支持根据 Slave 延迟控制是否走只读实例;
- 建表时自动为分库键创建索引;
- 按时间和 ID 做双字段分区时, 优化针对分库键的 GROUP BY 语句;
- 针对 Top N 的 ORDER BY LIMIT,使用内存堆排;
- 针对 DML 类型优化为单库下推模式;
- BEGIN/ROLLBACK/COMMIT 语句分号精确识别;
- DDL 语句,支持实例间并行执行;
- 支持 SET AUTOCOMMIT=on/off;
- CREATE TABLE IF NOT EXIST 语句优化容错;
- 针对广播表优化 TRUNCATE 语句,自动下发到所有分库上执行。
Bug 修复
- 修复 DMS 截断 DBPARTATION 语句的问题;
- 修复批量 INSERT 出现 “fatal exception” 时的空指针异常;
- 提前判断 MySQL 变量名称,防止传入错误的系统变量名,导致链接失效;
- 修复系统编码为 GBK 时,VARBINARY 类型 getBytes 结果与数据库不一致的问题;
- 修复 DDL 锁记录冲突 问题;
- 修复虚表 LEFT JOIN 问题;
- 修复三表做分库键上的 JOIN 时,分库键的值只被传递一次的问题;
- 修复 DATE( gmt_modified )<=? 语句 当右侧值为 DATE 类型时的空指针异常。
V5.1.21-513 日期 2015.09.07
新特性
- 支持 VPC 和商业化实例的 Open API;
- 增加实例列表中显示网络类型;
- 跳转到 DMS 页面时自动填写可用 VPC 实例连接信息;
- 支持查看 DRDS 实例机器 IP 列表。
V5.1.21-478 日期 2015.08.06
新特性
- 如果 RDS 有白名单,提示用户将相关 IP 加入 RDS 白名单;
- DRDS 数据库初始化增加分布式事务日志表;
- DRDS 数据表拆分键自动加索引;
- 支持金融云用户购买实例。
功能优化
- DRDS 建库失败时自动清理垃圾数据;
- DRDS 导入数据库失败时,自动清理配置,支持重复导入;
- DDL 时过滤带 schema 的语句;
- 优化数据导入功能,增加 DRDS InstanceId 参数。
Bug 修复
- 修复聚石塔购买页面错误。
V5.1.21-464 日期 2015.07.21
新特性
- DRDS 商业化,增加按量实例购买入口,完成选配、询价、批量下单等功能;
- 实例生命周期管理,包括创建、欠费、续费、欠费释放;
- 支持主动释放实例;
- 数据导入候选表列表中过滤视图;
- 支持 MySQL Compress 压缩协议的读和写;
- 支持数据平滑导入;
- 支持读写分离。
功能优化
- 完善 MySQL Prepare 协议支持。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论