TiDB 8.4.0 DMR 发版
11 月 11 日,TiDB 8.4.0 版本发布,以下是该版本的一些关键特性和改进:
性能
- 分区表全局索引成为正式功能:提高检索非分区列的效率,消除了唯一键必须包含分区键的限制,扩展了 TiDB 分区表的使用场景。
- TiDB 并行获取 TSO:在高并发场景下,并行获取 TSO 能有效降低等待获取 TSO 的时间,提升集群的吞吐。
- 提升缓存表的查询性能:优化了缓存表索引扫描的查询性能,在部分场景下可提升 5.4 倍。
- 实例级执行计划缓存(实验特性):允许同一个 TiDB 实例的所有会话共享执行计划缓存,减少 SQL 编译时间,提升 OLTP 性能和吞吐,同时更好地控制内存使用,提升数据库稳定性。
稳定性
- Runaway Queries 支持更多触发条件,并能够切换资源组:提供了有效的手段来降低突发的 SQL 性能问题对系统产生的影响。
- 支持为资源管控的后台任务设置资源使用上限:针对不同业务系统的需求,控制后台任务的消耗,保证在线业务的服务质量。
- 自动统计信息收集任务支持并发:通过充分利用系统资源,提高统计信息收集效率,减少手动调优,并确保集群性能稳定。
高可用
- TiProxy 流量捕获和回放(实验特性):在进行集群升级、迁移或部署变更等重要操作之前,使用 TiProxy 捕获 TiDB 生产集群的真实负载,并在测试的目标集群中重现该工作负载,从而验证性能,确保变更成功。
SQL 功能
- 支持向量搜索功能(实验特性):向量搜索是一种基于数据语义的搜索方法,可以提供更相关的搜索结果,可用于检索增强生成、语义搜索、推荐系统等多种场景。
这是 TiDB 社区版首个支持 Vector Search 的版本,该功能自今年 4 月在 TiDB Cloud Serverless 上已支持,目前 TiDB Cloud Serverless 所有 Regions 均支持 TiDB Vector Search (beta)。
数据库管理、可观测性和安全
- 在内存表中显示 TiKV 和 TiDB 的 CPU 时间,提升诊断效率。
- 按表或数据库维度聚合 TiKV 消耗的 CPU 时间,提升热点问题和 CPU 消耗问题的诊断效率。
- 支持对开启了 IMDSv2 服务的 TiKV 实例做备份。
- BR 支持在上传到备份存储之前对日志备份数据进行加密(实验特性)。
移除功能
- TiDB Binlog 在 v8.4.0 中被移除。请在升级前切换到 TiCDC。
改进提升和错误修复
- TiDB、TiKV、PD、TiFlash 和工具的多项改进提升,并修复了多个组件中的错误。
以上是 TiDB 8.4.0 DMR 版本发布的主要内容,更多内容参阅官方文档:
https://docs.pingcap.com/zh/tidb/v8.4/release-8.4.0
相关资料
10 月 15 日,TiDB v7.5.4 版本发布。
如果你还在使用上古版本,建议升级到最新 LTS 版本,如:TiDB v7.1.5, TiDB v7.5.4, TiDB v8.1.1。
TiDB 7.5.4 发行说明
兼容性变更
- 通过 TiDB HTTP API 获取 DDL 历史任务时,默认获取任务数量的上限为 2048,以避免历史任务数量过多导致 OOM 的问题 #55711 @joccau
改进提升
-
TiDB
EXPLAIN
语句支持应用tidb_redact_log
,并进一步优化了日志记录的处理逻辑 #54565 @hawkingrei- 优化 TiDB 慢查询的查询速度 #54630 @yibin87
-
TiKV
- 优化存在大量 DELETE 版本时 RocksDB 的 compaction 触发机制,以加快磁盘空间回收 #17269 @AndreMouche
- 减少 peer message channel 的内存使用 #16229 @Connor1996
- 优化 TiKV 重启时由于需要等待应用之前的日志而造成访问延时抖动的情况,提升了 TiKV 的稳定性 #15874 @LykxSassinator
- 优化 TiKV 的 DiskFull 检测使之与 RaftEngine 的配置项
spill-dir
兼容,确保该特性能够稳定运行 #17356 @LykxSassinator
-
TiFlash
- 优化
LENGTH()
和ASCII()
函数执行效率 #9344 @xzhangxian1008 - 降低 TiFlash 在开启 TLS 后因更新证书而导致 panic 的概率 #8535 @windtalker
- 改进 JOIN 算子的取消机制,使得 JOIN 算子内部能及时响应取消请求 #9430 @windtalker
- 优化
-
Tools
-
Backup & Restore (BR)
- 在 TiKV 下载每个 SST 文件之前,新增对 TiKV 是否有足够磁盘空间的检查;如果空间不足,BR 会终止恢复并返回错误 #17224 @RidRisR
-
TiCDC
- 当下游为
TiDB
且授予SUPER
权限时,TiCDC 支持从下游数据库查询ADD INDEX DDL
的执行状态,以避免某些情况下因重试执行 DDL 语句超时而导致数据同步失败 #10682 @CharlesCheung96
- 当下游为
-
错误修复
该版本共修复错误 50 余项(TiDB 22, TiKV 6, PD 6, TiFlash 7, Tools 10)。
详情参阅官方文档:
https://docs.pingcap.com/zh/tidb/v7.5/release-7.5.4
一键升级到 TiDB v7.5.4
升级前注意事项
- 升级前建议先升级 TiUP 版本
[root@centos7 package]# tiup update --self
Updated successfully!
[root@centos7 package]# tiup -v
1.16.0 tiup
Go Version: go1.21.11
Git Ref: v1.16.0
GitHash: e543145831d44a863366ff8c379d25980730bbd1
- 跨版本升级前,建议仔细阅读官方文档
https://docs.pingcap.com/zh/tidb/stable/upgrade-tidb-using-tiup
- 参考其他社区资料
- 【收藏】TiDB 版本升级最全材料包&升级指南
- TiDB 社区论坛 >> TiDB 技术问题 >> 升级 https://asktug.com/c/tidb/update/420036
一键升级到 TiDB v7.5.4
将集群不停机升级到 v7.5.4
tiup cluster upgrade mytidb v7.5.4
升级完成
Upgraded cluster `mytidb` successfully
查看数据库版本
[root@centos7 ~]# tidb -e 'select tidb_version()\G'
Enter password:
*************************** 1. row ***************************
tidb_version(): Release Version: v7.5.4
Edition: Community
Git Commit Hash: 15a52d8b9c7eb373fa0b9b71a0ac346f652b7cdf
Git Branch: HEAD
UTC Build Time: 2024-10-12 08:23:42
GoVersion: go1.21.13
Race Enabled: false
Check Table Before Drop: false
Store: tikv
获取 DDL 历史任务
从 TiDB v7.5.4 开始,通过 TiDB HTTP API 获取 DDL 历史任务时,默认获取任务数量的上限为 2048。
[root@centos7 ~]# curl localhost:10080/ddl/history?limit=2049
ddl history limit must be greater than 0 and less than or equal to 2048[root@centos7 ~]#
之前的情况是获取全部 DDL 历史任务,如需获取更多历史任务可以使用参数 start_job_id
和 limit
分批次获取。
curl -s localhost:10080/ddl/history?start_job_id=4000 -d "limit=1024"
Have a nice day ~