title: TiDB 4.0.8 Release Notes
TiDB 4.0.8 Release Notes
发版日期:2020 年 10 月 30 日
TiDB 版本:4.0.8
新功能
优化提升
TiDB
- 在挑选索引组合计算表达式选择率的贪心算法里优先使用选择率低的索引 #20154
- 在 Coprocessor 运行状态中记录更多的 RPC 信息 #19264
- 优化读取慢日志的效率,以提升慢查询性能 #20556
- 在挑选执行计划时,优化器会在 Plan Binding 阶段等待超时的执行计划以记录更多的 Debug 信息 #20530
- 在慢查询和慢日志中增加语句的重试时间 #20495 #20494
- 增加系统表
table_storage_stats
#20431 - 为
INSERT
/UPDATE
/REPLACE
语句记录 RPC 相关的运行时信息 #20430 - 在
EXPLAIN FOR CONNECTION
语句的结果中新增算子信息 #20384 - 在 TiDB 日志中将客户端的连接建立/断开日志级别调整为
DEBUG
#20321 - 增加 Coprocessor Cache 的监控信息 #20293
- 在运行时信息中记录更多的悲观锁相关参数 #20199
- 在运行时信息和 Trace 功能中增加两个新的耗时信息 #20187
- 在慢日志中添加事务提交的运行时信息 #20185
- 关闭 Index Merge Join #20599
- 为临时字符串常量增加 ISO 8601 和时区支持 #20670
TiKV
PD
TiFlash
- 添加关于 Raft log 的监控
- 添加关于
cop
任务内存使用的监控 - 在存在删除数据的情况下使
min
/max
索引更加准确 - 提高小批量数据下的查询性能
- 添加
error.toml
文件以支持标准错误码
Tools
Backup & Restore (BR)
TiCDC
- 在 MySQL sink 中定期输出统计信息 #1023
Dumpling
TiDB Lightning
Bug 修复
TiDB
- 修复使用分区表时,可能遇到非预期 Panic 的问题 #20565
- 修复外连接时,若外表有过滤条件,Index Merge Join 结果有时不正确的问题 #20427
- 修复
BIT
类型进行转换时,由于类型长度溢出而错误地返回NULL
的问题 #20363 - 修复
ALTER TABLE ...
语法改变BIT
类型的默认值,可能导致默认值错误的问题 #20340 - 修复
BIT
类型转换为INT64
时可能导致长度溢出错误的问题 #20312 - 修复混合类型的列在进行条件传播优化时,可能导致结果错误的问题 #20297
- 修复 Plan Cache 在存储过期执行计划时,可能 Panic 的问题 #20246
- 修复
FROM_UNIXTIME
和UNION ALL
一起使用时,返回结果会被错误地截断的问题 #20240 - 修复
Enum
类型在转换为Float
类型时可能导致错误结果的问题 #20235 - 修复
RegionStore
在某些条件下会 Panic 的问题 #20210 - 修复
BatchPointGet
请求对无符号整数的最大值进行排序时,结果错误的问题 #20205 - 修复
Enum
/Set
类型在混合 Collation 的类型判定时,结果 Collation 可能与 MySQL 不兼容的问题 #20364 - 修复将其他类型的
0
转换为YEAR
类型时,结果与 MySQL 不兼容的问题 #20292 - 修复
KV Duration
监控指标中包含store0
时,上报结果不正确的问题 #20260 - 修复写入
Float
类型数据时,由于长度溢出提示out of range
错误后仍然被错误地写入问题 #20252 - 修复
NOT NULL
属性生成列允许在某些情况下写入NULL
值的问题 #20216 - 修复
YEAR
类型数据写入超过允许范围时,错误提示不准确的问题 #20170 - 修复某些情况下悲观事务重试时,会报错
invalid auto-id
的问题 #20134 - 修复
ALTER TABLE
更改Enum
/Set
类型时,未进行重复性约束检查的问题 #20046 - 修复一些算子在并发执行时,记录的 Coprocessor Task 运行时信息错误的问题 #19947
- 修复只读系统变量无法被作为 Session 级变量显式
SELECT
的问题 #19944 - 修复重复
ORDER BY
条件有时会导致执行计划选择不是最优的问题 #20333 - 修复生成 Metric Profile 时,由于字体超过允许的最大值导致失败的问题 #20637
TiKV
PD
TiFlash
- 修复了日志信息中时间戳错误的问题
- 修复了使用多盘部署时错误的容量导致创建 TiFlash 副本失败的问题
- 修复了 TiFlash 重启后可能提示数据文件损坏的问题
- 修复了 TiFlash 崩溃后磁盘上可能残留损坏文件的问题
- 修复了在写流量较小情况下,由于 Raft Learner 协议中的状态不能及时更新而导致
wait index duration
变长,造成查询慢的问题 - 修复了在重放过期 Raft 日志时,proxy 会向 key-value 引擎写入大量 Region state 信息的问题
Tools