- 关于 TiDB
- 快速上手
- 部署标准集群
- 数据迁移
- 运维操作
- 监控与告警
- 故障诊断
- 性能调优
- 系统调优
- 软件调优
- SQL 性能调优
- SQL 性能调优概览
- 理解 TiDB 执行计划
- SQL 优化流程
- 控制执行计划
- 教程
- 同城多中心部署
- 两地三中心部署
- 同城两中心部署
- 读取历史数据
- 使用 Stale Read 功能读取历史数据(推荐)
- 使用系统变量
tidb_snapshot
读取历史数据
- 最佳实践
- Placement Rules 使用文档
- Load Base Split 使用文档
- Store Limit 使用文档
- TiDB 工具
- 功能概览
- 适用场景
- 工具下载
- TiUP
- 文档地图
- 概览
- 术语及核心概念
- TiUP 组件管理
- FAQ
- 故障排查
- TiUP 命令参考手册
- 命令概览
- TiUP 命令
- TiUP Cluster 命令
- TiUP Cluster 命令概览
- tiup cluster audit
- tiup cluster check
- tiup cluster clean
- tiup cluster deploy
- tiup cluster destroy
- tiup cluster disable
- tiup cluster display
- tiup cluster edit-config
- tiup cluster enable
- tiup cluster help
- tiup cluster import
- tiup cluster list
- tiup cluster patch
- tiup cluster prune
- tiup cluster reload
- tiup cluster rename
- tiup cluster replay
- tiup cluster restart
- tiup cluster scale-in
- tiup cluster scale-out
- tiup cluster start
- tiup cluster stop
- tiup cluster template
- tiup cluster upgrade
- TiUP DM 命令
- TiUP DM 命令概览
- tiup dm audit
- tiup dm deploy
- tiup dm destroy
- tiup dm disable
- tiup dm display
- tiup dm edit-config
- tiup dm enable
- tiup dm help
- tiup dm import
- tiup dm list
- tiup dm patch
- tiup dm prune
- tiup dm reload
- tiup dm replay
- tiup dm restart
- tiup dm scale-in
- tiup dm scale-out
- tiup dm start
- tiup dm stop
- tiup dm template
- tiup dm upgrade
- TiDB 集群拓扑文件配置
- DM 集群拓扑文件配置
- TiUP 镜像参考指南
- TiUP 组件文档
- PingCAP Clinic 诊断服务 (Technical Preview)
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- 关于 Data Migration
- 快速开始
- 部署 DM 集群
- 入门指南
- 进阶教程
- 运维管理
- 参考手册
- 使用示例
- 异常解决
- 版本发布历史
- Backup & Restore (BR)
- TiDB Binlog
- TiCDC
- sync-diff-inspector
- TiSpark
- 参考指南
- 架构
- 监控指标
- 安全加固
- 权限
- SQL
- SQL 语言结构和语法
- SQL 语句
ADD COLUMN
ADD INDEX
ADMIN
ADMIN CANCEL DDL
ADMIN CHECKSUM TABLE
ADMIN CHECK [TABLE|INDEX]
ADMIN SHOW DDL [JOBS|QUERIES]
ADMIN SHOW TELEMETRY
ALTER DATABASE
ALTER INDEX
ALTER INSTANCE
ALTER PLACEMENT POLICY
ALTER TABLE
ALTER USER
ANALYZE TABLE
BACKUP
BEGIN
CHANGE COLUMN
CHANGE DRAINER
CHANGE PUMP
COMMIT
CREATE [GLOBAL|SESSION] BINDING
CREATE DATABASE
CREATE INDEX
CREATE PLACEMENT POLICY
CREATE ROLE
CREATE SEQUENCE
CREATE TABLE LIKE
CREATE TABLE
CREATE USER
CREATE VIEW
DEALLOCATE
DELETE
DESC
DESCRIBE
DO
DROP [GLOBAL|SESSION] BINDING
DROP COLUMN
DROP DATABASE
DROP INDEX
DROP PLACEMENT POLICY
DROP ROLE
DROP SEQUENCE
DROP STATS
DROP TABLE
DROP USER
DROP VIEW
EXECUTE
EXPLAIN ANALYZE
EXPLAIN
FLASHBACK TABLE
FLUSH PRIVILEGES
FLUSH STATUS
FLUSH TABLES
GRANT <privileges>
GRANT <role>
INSERT
KILL [TIDB]
LOAD DATA
LOAD STATS
MODIFY COLUMN
PREPARE
RECOVER TABLE
RENAME INDEX
RENAME TABLE
REPLACE
RESTORE
REVOKE <privileges>
REVOKE <role>
ROLLBACK
SELECT
SET DEFAULT ROLE
SET [NAMES|CHARACTER SET]
SET PASSWORD
SET ROLE
SET TRANSACTION
SET [GLOBAL|SESSION] <variable>
SHOW [BACKUPS|RESTORES]
SHOW ANALYZE STATUS
SHOW [GLOBAL|SESSION] BINDINGS
SHOW BUILTINS
SHOW CHARACTER SET
SHOW COLLATION
SHOW [FULL] COLUMNS FROM
SHOW CONFIG
SHOW CREATE PLACEMENT POLICY
SHOW CREATE SEQUENCE
SHOW CREATE TABLE
SHOW CREATE USER
SHOW DATABASES
SHOW DRAINER STATUS
SHOW ENGINES
SHOW ERRORS
SHOW [FULL] FIELDS FROM
SHOW GRANTS
SHOW INDEX [FROM|IN]
SHOW INDEXES [FROM|IN]
SHOW KEYS [FROM|IN]
SHOW MASTER STATUS
SHOW PLACEMENT
SHOW PLACEMENT FOR
SHOW PLACEMENT LABELS
SHOW PLUGINS
SHOW PRIVILEGES
SHOW [FULL] PROCESSSLIST
SHOW PROFILES
SHOW PUMP STATUS
SHOW SCHEMAS
SHOW STATS_HEALTHY
SHOW STATS_HISTOGRAMS
SHOW STATS_META
SHOW STATUS
SHOW TABLE NEXT_ROW_ID
SHOW TABLE REGIONS
SHOW TABLE STATUS
SHOW [FULL] TABLES
SHOW [GLOBAL|SESSION] VARIABLES
SHOW WARNINGS
SHUTDOWN
SPLIT REGION
START TRANSACTION
TABLE
TRACE
TRUNCATE
UPDATE
USE
WITH
- 数据类型
- 函数与操作符
- 聚簇索引
- 约束
- 生成列
- SQL 模式
- 表属性
- 事务
- 垃圾回收 (GC)
- 视图
- 分区表
- 临时表
- 缓存表
- 字符集和排序
- Placement Rules in SQL
- 系统表
mysql
- INFORMATION_SCHEMA
- Overview
ANALYZE_STATUS
CLIENT_ERRORS_SUMMARY_BY_HOST
CLIENT_ERRORS_SUMMARY_BY_USER
CLIENT_ERRORS_SUMMARY_GLOBAL
CHARACTER_SETS
CLUSTER_CONFIG
CLUSTER_HARDWARE
CLUSTER_INFO
CLUSTER_LOAD
CLUSTER_LOG
CLUSTER_SYSTEMINFO
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
DATA_LOCK_WAITS
DDL_JOBS
DEADLOCKS
ENGINES
INSPECTION_RESULT
INSPECTION_RULES
INSPECTION_SUMMARY
KEY_COLUMN_USAGE
METRICS_SUMMARY
METRICS_TABLES
PARTITIONS
PLACEMENT_POLICIES
PROCESSLIST
REFERENTIAL_CONSTRAINTS
SCHEMATA
SEQUENCES
SESSION_VARIABLES
SLOW_QUERY
STATISTICS
TABLES
TABLE_CONSTRAINTS
TABLE_STORAGE_STATS
TIDB_HOT_REGIONS
TIDB_HOT_REGIONS_HISTORY
TIDB_INDEXES
TIDB_SERVERS_INFO
TIDB_TRX
TIFLASH_REPLICA
TIKV_REGION_PEERS
TIKV_REGION_STATUS
TIKV_STORE_STATUS
USER_PRIVILEGES
VIEWS
METRICS_SCHEMA
- UI
- CLI
- 命令行参数
- 配置文件参数
- 系统变量
- 存储引擎
- 遥测
- 错误码
- 通过拓扑 label 进行副本调度
- 常见问题解答 (FAQ)
- 版本发布历史
- 术语表
重要
TiDB 5.4.1 Release Notes
发版日期:2022 年 5 月 13 日
TiDB 版本:5.4.1
兼容性更改
TiDB v5.4.1 未引入产品设计上的兼容性变化,但请注意该版本中的 Bug 修复也可能带来兼容性变更,请参考 Bug 修复部分。
提升改进
TiDB
TiKV
- 在 Grafana 的仪表盘中支持显示多个 Kubernetes 集群 #12104
PD
- 在 Grafana 的仪表盘中支持显示多个 Kubernetes 集群 #4673
TiFlash
- 在 Grafana 的仪表盘中支持显示多个 Kubernetes 集群 #4129
Tools
Bug 修复
TiDB
- 修复 date_format 对
'\n'
的处理与 MySQL 不兼容的问题 #32232 - 修复
ENUM
或SET
类型的列因为编码错误导致写入数据错误的问题 #32302 - 修复特定情况下 Merge Join 执行结果错误的问题 #33042
- 修复关联子查询返回结果中有常量时导致执行结果出错的问题 #32089
- 修复在 TiFlash 不支持使用空范围读表的情况,依然选择 TiFlash 导致查询结果错误的问题 #33083
- 修复开启 New Collation 时,作用在
ENUM
或SET
列上的MAX
或MIN
函数结果出错的问题 #31638 - 修复查询报错时可能阻塞 CTE 的问题 #31302
- 修复 Nulleq 函数作用在 Enum 类型上可能出现结果错误的问题 #32428
- 修复使用 ChunkRPC 导出数据时可能造成 TiDB OOM 的问题 #31981 #30880
- 修复开启
tidb_restricted_read_only
后tidb_super_read_only
没有自动开启的问题 #31745 - 修复带有 collation 的
greatest
或least
函数结果出错的问题 #31789 - 修复 LOAD DATA 语句处理转义字符时可能 panic 的问题 #31589
- 修复查询时用到 index lookup join 导致
invalid transaction
报错的问题 #30468 - 修复使用 left join 同时删除多张表数据时可能出现错误结果的问题 #31321
- 修复 TiDB 可能向 TiFlash 发送重复任务的问题 #32814
- 修复了集群从 4.0 版本升级后,为用户授予
all
权限时报错的问题 #33588 - 修复了在 MySQL binary 协议下,当 schema 变更后,执行 prepared statement 会导致会话崩溃的问题 #33509
- 修复了
compress()
表达式在tidb_enable_vectorized_expression
开启时,执行会报错的问题 #33397 - 修复了
reArrangeFallback()
函数使用 CPU 资源过多的问题 #30353 - 修复对于新加入的分区,表属性 (table attributes) 无法被检索到,以及分区更新后,表的 range 信息不会被更新的问题 #33929
- 修复了表的
TopN
统计信息在初始化时未正确排序的问题 #34216 - 修复了读取
INFORMATION_SCHEMA.ATTRIBUTES
表报错的问题,对于无法识别的 attributes 会做跳过处理 #33665 - 修复了当查询要求结果有序的情况下,即使设置了
@@tidb_enable_parallel_apply
,Apply
算子依然不使用并行模式执行的问题 #34237 - 修复了在 sql_mode 为
NO_ZERO_DATE
的限制下,用户依然可以插入数据'0000-00-00 00:00:00'
到datetime
列的问题 #34099 - 修复了查询
INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY
表导致 TiDB 服务器 OOM 的问题,在 Grafana dashboard 中查看慢查询记录的时候可能会触发该问题 #33893 - 修复了在
NOWAIT
语句中,事务执行遇到了锁后,并不会立刻返回的问题 #32754 - 修复创建字符集为
GBK
且 collation 为gbk_bin
的表失败的问题 #31308 - 修复启用配置
enable-new-charset
后,当字符集为 GBK 且指定 collation 时,建表报错 "Unknown character set" 的问题 #31297
- 修复 date_format 对
TiKV
- 修复待 merge 的 Region 无效会导致 TiKV panic 且非预期地销毁 peer 的问题 #12232
- 修复旧信息造成 TiKV panic 的问题 #12023
- 修复因内存统计指标溢出而造成的间歇性丢包和内存不足 (OOM) 的问题 #12160
- 修复在 Ubuntu 18.04 下进行性能分析会造成 TiKV panic 的问题 #9765
- 修复 replica read 可能违反线性一致性的问题 #12109
- 修复合并 Region 时因 target peer 被一个未进行初始化就被销毁的 peer 所替换,从而引起 TiKV panic 的问题 #12048
- 修复 TiKV 运行 2 年以上可能 panic 的问题 #11940
- 通过减少需要进行清理锁 (Resolve Locks) 步骤的 Region 数量来减少 TiCDC 恢复时间 #11993
- 修复 Peer 状态为 Applying 时快照文件被删除会造成 panic 的问题 #11746
- 修复删除 Peer 可能造成高延迟的问题 #10210
- 修复资源管理不正确断言导致 panic 的问题 #12234
- 修复部分情况下 slow score 计算不准确的问题 #12254
- 修复
resolved_ts
模块内存管理不合理导致的 OOM 问题,增加更多监控指标 #12159 - 修复网络出现问题的情况下,已成功提交的乐观事务可能报
Write Conflict
错误的问题 #34066 - 修复启用 replica read 时,在网络出现问题的情况下 TiKV 可能 panic 的问题 #12046
PD
TiFlash
- 修复启用 TLS 时可能导致的崩溃 #4196
- 修复在滞后的 Region peer 上执行 Region Merge 导致的元数据损坏问题 #4437
- 修复在执行带有
JOIN
的查询遇到错误时可能被挂起的问题 #4195 - 修复 MPP 任务可能永远泄漏线程的问题 #4238
- 修复将
FLOAT
类型转换为DECIMAL
类型可能造成溢出的问题 #3998 - 修复过期数据回收缓慢的问题 #4146
- 修复启用本地隧道时取消 MPP 查询可能导致任务永远挂起的问题 #4229
- 修复查询被取消时出现的内存泄露问题 #4098
- 修复将
DATETIME
转换为DECIMAL
时结果错误的问题 #4151 - 修复并发执行多个 DDL 操作和 Apply Snapshot 操作时 TiFlash 可能会崩溃问题 #4072
- 修复错误地配置存储目录会导致非预期行为的问题 #4093
- 修复一些异常没有被正确地处理的问题 #4101
- 修复将
INT
类型转换为DECIMAL
类型可能造成溢出的问题 #3920 - 修复
IN
函数的结果在多值表达式中不正确的问题 #4016 - 修复日期格式将
'\n'
处理为非法分隔符的问题 #4036 - 修复在读取工作量大时添加列后可能出现的查询错误 #3967
- 修复启用内存限制后 TiFlash 崩溃的问题 #3902
- 修复 DTFile 中可能出现的数据损坏问题 #4778
- 修复查询存在大量 delete 操作的表时可能报错的问题 #4747
- 修复 TiFlash 随机报错 "Keepalive watchdog fired" 的问题 #4192
- 修复 TiFlash 节点上遗留了与 Region range 不匹配的数据的问题 #4414
- 修复空 segments 在 GC 后无法合并的问题 #4511
Tools
Backup & Restore (BR)
- 修复了在备份重试过程中加密信息丢失导致的恢复操作失败的问题 #32423
- 修复 BR 无法备份 RawKV 的问题 #32607
- 修复增量恢复后在表中插入记录时遇到的重复主键问题 #33596
- 修复增量恢复期间,由于 DDL 查询任务为空导致的报错 #33322
- 修复当恢复完成后,Region 有可能分布不均的问题 #31034
- 修复恢复过程中 Region 不一致时 BR 重试次数不足的问题 #33419
- 修复在某些情况下,恢复过程中开启 merge 小文件功能导致 BR panic 的问题 #33801
- 修复了 BR 或 TiDB Lightning 在异常退出的时候,scheduler 没有重置的问题 #33546
TiCDC
- 修复切换 owner 会导致其 metrics 数据不正确的问题 #4774
- 修复
Canal-JSON
不支持 nil 可能导致的 TiCDC panic 问题 #4736 - 修复 Unified Sorter 的 workerpool 稳定性问题 #4447
- 修复某些情况下序列对象被错误同步的问题 #4552
- 修复
Canal-JSON
错误处理string
格式可能导致的 TiCDC panic 问题 #4635 - 修复了 TiCDC 进程在 PD leader 被杀死时的异常退出问题 #4248
- 修复 MySQL sink 在禁用
batch-replace-enable
参数时生成重复replace
SQL 语句的错误 #4501 - 修复了
rename tables
DDL 导致的生成 DML 错误的问题 #5059 - 修复了在某些极端情况下,开启 new scheduler(默认关闭)时更新 owner 导致同步卡住的问题 #4963
- 修复了在开启 new scheduler(默认关闭)时出现报错 (ErrProcessorDuplicateOperations) 的问题 #4769
- 修复了在开启 TLS 后,
--pd
中设置的第一个 PD 不可用导致 TiCDC 无法启动的问题 #4777 - 修复了在表被调度时 checkpoint 监控缺失的问题 #4714
TiDB Lightning
TiDB Data Migration (DM)
- 修复了日志中出现数百条 "checkpoint has no change, skip sync flush checkpoint" 以及迁移性能下降的问题 #4619
- 修复了 varchar 类型值长度过长时的
Column length too big
错误 #4637 - 修复了 UPDATE 语句在安全模式下执行错误会导致 DM 进程挂掉的问题 #4317
- 修复了某些情况下,过滤 DDL 并在下游手动执行会导致同步任务不能自动重试恢复的问题 #5272
- 修复了在上游没有开启 binlog 时执行
query-status
命令返回结果为空的问题 #5121 - 修复了在
SHOW CREATE TABLE
语句返回的索引中,主键没有排在第一位导致的 DM worker panic 的问题 #5159 - 修复了当开启 GTID 模式或者任务自动恢复时,可能出现一段时间 CPU 占用高并打印大量日志的问题 #5063
文档内容是否有帮助?