- 关于 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 组件文档
- TiDB Operator
- Dumpling
- TiDB Lightning
- TiDB Data Migration
- 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_RULES
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.2.4 Release Notes
发版日期:2022 年 4 月 26 日
TiDB 版本:5.2.4
兼容性更改
TiDB
- 将系统变量
tidb_analyze_version
的默认值从2
修改为1
#31748
- 将系统变量
TiKV
- 新增
raft-log-compact-sync-interval
配置项,用于压缩非必要的 Raft 日志的时间间隔,默认值为"2s"
#11404 - 将
raft-log-gc-tick-interval
的默认值从"10s"
修改为"3s"
#11404 - 当
storage.flow-control.enable
的值为true
时,storage.flow-control.hard-pending-compaction-bytes-limit
的配置会覆盖rocksdb.(defaultcf|writecf|lockcf).hard-pending-compaction-bytes-limit
的配置 #11424
- 新增
Tools
TiDB Lightning
- 将
regionMaxKeyCount
的默认值从 1_440_000 调整为 1_280_000,以避免数据导入后出现过多空 Region #30018
- 将
提升改进
TiKV
Tools
TiCDC
- 将 Kafka Sink
partition-num
的默认值改为 3,使 TiCDC 更加平均地分发消息到各个 Kafka partition #3337 - 减少 TiKV 节点宕机后 KV client 恢复的时间 #3191
- 在 Grafana 中添加
Lag analyze
监控面板 #4891 - 暴露 Kafka producer 配置参数,使之在 TiCDC 中可配置 #4385
- 为 changefeed 重启操作添加指数退避机制 #3329
- 减少 "EventFeed retry rate limited" 日志的数量 #4006
- 将
max-message-bytes
默认值设置为 10M #4041 - 增加更多 Promethous 和 Grafana 监控告警参数,包括
no owner alert
、mounter row
、table sink total row
和buffer sink total row
#4054 #1606 - 在 Grafana 监控面板中支持多个 Kubernetes 集群 #4665
- 在
changefeed checkpoint
监控项中添加监控指标预计追加时间 (catch-up ETA) #5232
- 将 Kafka Sink
Bug 修复
TiDB
- 修复 Nulleq 函数作用在 Enum 类型上可能出现结果错误的问题 #32428
- 修复 INDEX HASH JOIN 报
send on closed channel
的问题 #31129 - 修复并发的列类型变更导致 schema 与数据不一致的问题 #31048
- 修复乐观事务下数据索引可能不一致的问题 #30410
- 修复当 SQL 语句中存在 JSON 类型列与
CHAR
类型列连接时,SQL 出错的问题 #29401 - 修复窗口函数在使用事务时,计算结果与不使用事务时的计算结果不一致的问题 #29947
- 修复 SQL 语句中带有 NATURAL JOIN 时,意外报错
Column 'col_name' in field list is ambiguous
的问题 #25041 - 修复将
Decimal
转为String
时长度信息错误的问题 #29417 - 修复由于
tidb_enable_vectorized_expression
设置的值不同(on
或off
)导致GREATEST
函数返回结果不一致的问题 #29434 - 修复使用 left join 同时删除多张表数据时可能出现错误结果的问题 #31321
- 修复 TiDB 可能向 TiFlash 发送重复任务的问题 #32814
- 修复执行查询时报 MPP task list 为空错误的问题 #31636
- 修复 innerWorker panic 导致的 index join 结果错误的问题 #31494
- 修复
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
语句 panic 的问题 #28078 - 修复针对
Order By
的优化导致查询结果有误的问题 #30271 - 修复使用
ENUM
类型的列进行 Join 时结果可能不正确的问题 #27831 - 修复当
CASE WHEN
函数和ENUM
类型一起使用时的崩溃问题 #29357 - 修复
microsecond
函数的向量化表达式版本结果不正确的问题 #29244 - 修复窗口函数执行时本应报错但是让 TiDB 崩溃的问题 #30326
- 修复特定情况下 Merge Join 执行结果错误的问题 #33042
- 修复关联子查询返回结果中有常量时导致执行结果出错的问题 #32089
- 修复
ENUM
或SET
类型的列因为编码错误导致写入数据错误的问题 #32302 - 修复开启 New Collation 时,作用在
ENUM
或SET
列上的MAX
或MIN
函数结果出错的问题 #31638 - 修复某些情况下 IndexHashJoin 算子没有正常退出的问题 #31062
- 修复有虚拟列时可能导致 TiDB 读到错误数据的问题 #30965
- 修复日志级别的设置没有对慢查询日志生效的问题 #30309
- 修复某些情况下分区表无法充分利用索引来扫描数据的问题 #33966
- 修复 TiDB 的后台 HTTP 服务可能没有正确关闭导致集群状态异常的问题 #30571
- 修复 TiDB 会非预期地打印很多鉴权失败相关日志的问题 #29709
- 修复系统变量
max_allowed_packet
不生效的问题 #31422 - 修复当 auto ID 超出范围时,
REPLACE
语句错误地修改了其它行的问题 #29483 - 修复慢查询日志无法正常输出而且可能消耗大量内存的问题 #32656
- 修复 NATRUAL JOIN 可能输出多余列的问题 #24981
- 修复使用前缀列索引时,ORDER + LIMIT 语句可能导致结果出错的问题 #29711
- 修复乐观事务重试时,DOUBLE 类型的自增列可能在重试时值发生改变的问题 #29892
- 修复 STR_TO_DATE 函数无法正确处理微秒部分的前导 0 的问题 #30078
- 修复在 TiFlash 不支持使用空范围读表的情况,依然选择 TiFlash 导致查询结果错误的问题 #33083
TiKV
- 修复旧信息造成 TiKV panic 的问题 #12023
- 修复因内存统计指标溢出而造成的间歇性丢包和内存不足 (OOM) 的问题 #12160
- 修复在 Ubuntu 18.04 下进行性能分析会造成 TiKV panic 的问题 #9765
- 修复 tikv-ctl 对
bad-ssts
结果字符串进行错误匹配的问题 #12329 - 修复 Replica Read 可能违反线性一致性的问题 #12109
- 修复 TiKV 运行 2 年以上可能 panic 的问题 #11940
- 修复开启流量控制且显式设置
level0_slowdown_trigger
时出现 QPS 下降的问题 #11424 - 修复 cgroup controller 没有被挂载会造成 panic 的问题 #11569
- 修复在滞后的 Region peer 上执行 Region Merge 导致的元数据损坏问题 #11526
- 修复 TiKV 停止后 Resolved TS 延迟会增加的问题 #11351
- 修复在极端情况下同时进行 Region Merge、ConfChange 和 snapshot 时,TiKV 会出现 panic 的问题 #11475
- 修复 tikv-ctl 无法正确输出 Region 相关信息的问题 #11393
- 修复 Decimal 除法计算的结果为 0 时符号为负的问题 #29586
- 修复悲观事务中 prewrite 请求重试在极少数情况下影响数据一致性的风险 #11187
- 修复因统计线程监控数据导致的内存泄漏 #11195
- 修复 TiKV 监控项中实例级别 gRPC 的平均延迟时间不准确的问题 #11299
- 修复 Peer 状态为 Applying 时快照文件被删除会造成 panic 的问题 #11746
- 修复 GC worker 繁忙后无法执行范围删除(即执行内部命令
unsafe_destroy_range
)的问题 #11903 - 修复删除未初始化的副本可能会造成旧副本被重新创建的问题 #10533
- 修复逆序扫表时 TiKV 无法正确读到内存锁的问题 #11440
- 修复协程的执行速度太快时偶尔出现的死锁问题 #11549
- 修复删除 Peer 可能造成高延迟的问题 #10210
- 修复待 merge 的 Region 无效会导致 TiKV panic 且非预期地销毁 peer 的问题 #12232
- 修复合并 Region 时因 target peer 被一个未进行初始化就被销毁的 peer 所替换,从而引起 TiKV panic 的问题 #12048
- 修复 apply snapshot 被暂停时会引起 TiKV panic 的问题 #11618
- 修复了在 operator 执行失败时,TiKV 无法正确地计算正在发送的 snapshot 数量的问题 #11341
PD
TiFlash
- 修复 MPP 任务可能永远泄漏线程的问题 #4238
- 修复
IN
函数的结果在多值表达式中不正确的问题 #4016 - 修复日期格式将
'\n'
处理为非法分隔符的问题 #4036 - 修复在读取工作量大时添加列后可能出现的查询错误 #3967
- 修复错误地配置存储目录会导致非预期行为的问题 #4093
- 修复一些异常没有被正确地处理的问题 #4101
- 修复
STR_TO_DATE()
函数对微秒前导零的错误解析 #3557 - 修复将
INT
类型转换为DECIMAL
类型可能造成溢出的问题 #3920 - 修复将
DATETIME
转换为DECIMAL
时结果错误的问题 #4151 - 修复将
FLOAT
类型转换为DECIMAL
类型可能造成溢出的问题 #3998 - 修复
CastStringAsReal
在 TiFlash 的行为与在 TiDB、TiKV 的行为不一致的问题 #3475 - 修复
CastStringAsDecimal
在 TiFlash 的行为与在 TiDB、TiKV 的行为不一致的问题 #3619 - 修复 TiFlash 重启时偶发的
EstablishMPPConnection
错误 #3615 - 修复当设置 TiFlash 副本数为 0(即删除数据)后数据无法回收的问题 #3659
- 修复当主键为 handle 时,扩宽主键列可能导致的数据不一致问题 #3569
- 修复 SQL 语句中含有极长嵌套表达式时可能出现的解析错误 #3354
- 修复查询语句包含
where <string>
时查询结果出错的问题 #3447 - 修复
new_collations_enabled_on_first_bootstrap
开启后查询结果可能出错的问题 #3388, #3391 - 修复启用 TLS 时可能导致的崩溃 #4196
- 修复启用内存限制后 TiFlash 崩溃的问题 #3902
- 修复当 MPP 查询被终止时,TiFlash 偶发的崩溃问题 #3401
- 修复非预期的
Unexpected type of column: Nullable(Nothing)
错误 #3351 - 修复在滞后的 Region peer 上执行 Region Merge 导致的元数据损坏问题 #4437
- 修复在执行带有
JOIN
的查询遇到错误时可能被挂起的问题 #4195 - 修复不正确的执行计划可能导致 MPP 查询出错的问题 #3389
Tools
Backup & Restore (BR)
- 修复 BR 无法备份 RawKV 的问题 #32607
TiCDC
- 修复不支持同步默认值的问题 #3793
- 修复某些情况下序列对象被错误同步的问题 #4552
- 修复了 TiCDC 进程在 PD leader 被杀死时的异常退出问题 #4248
- 修复 MySQL sink 在禁用
batch-replace-enable
参数时生成重复replace
SQL 语句的错误 #4501 - 修复输出默认列值时的 panic 问题和数据不一致的问题 #3929
- 修复
mq sink write row
没有监控数据的问题 #3431 - 修复当
min.insync.replicas
小于replication-factor
时不能同步的问题 #3994 - 修复在移除同步任务后潜在的 panic 问题 #3128
- 修复了 HTTP API 在查询的组件不存在时导致 CDC 挂掉的问题 #3840
- 修复因 checkpoint 不准确导致的潜在的数据丢失问题 #3545
- 修复潜在的同步流控死锁问题 #4055
- 修复人为删除 etcd 任务的状态时导致 TiCDC panic 的问题 #2980
- 修复 DDL 特殊注释导致的同步停止的问题 #3755
- 修复
config.Metadata.Timeout
没有正确配置而导致的同步停止问题 #3352 - 修复在某些 RHEL 发行版上因时区问题导致服务无法启动的问题 #3584
- 修复集群升级后
stopped
状态的 changefeed 自动恢复的问题 #3473 - 修复 MySQL sink 模块出现死锁时告警过于频繁的问题 #2706
- 修复 Canal 和 Maxwell 协议下 TiCDC 没有自动开启
enable-old-value
选项的问题 #3676 - 修复 Avro sink 模块不支持解析 JSON 类型列的问题 #3624
- 修复监控 checkpoint lag 出现负值的问题 #3010
- 修复在容器环境中 OOM 的问题 #1798
- 修复执行 DDL 后的内存泄漏的问题 #3174
- 修复在同一节点反复调入调出一张表可能会导致同步任务 (changefeed) 被卡住的问题 #4464
- 修复当 PD 状态不正常时 OpenAPI 可能会卡住的问题 #4778
- 修复切换 owner 会导致其 metrics 数据不正确的问题 #4774
- 修复 Unified Sorter 的 workerpool 稳定性问题 #4447
- 修复
cached region
监控指标为负数的问题 #4300
TiDB Lightning
文档内容是否有帮助?