TiDB 新版本:更稳、更快、更好的数据库体验

作者: TiDB社区小助手 原文来源: https://tidb.net/blog/2d33d7db

本文内容出自:PingCAP 高级顾问 蓝功儒老师

在 9 月 21 日 TiDB 新版本 Meetup 中,PingCAP 高级顾问蓝功儒老师为我们带来了关于 TiDB 新版本的深入分享。TiDB 作为一个分布式数据库,以其高性能、高可用性和易于扩展的特性,帮助企业灵活应对不同的业务场景。蓝老师在此次分享中,详细介绍了TiDB 新版本在性能、稳定性和可观测性方面的迭代和优化,推荐小伙伴们阅读!

TiDB 是一款什么样的数据库?

TiDB 是一款开源分布式关系型数据库,它支持标准的 SQL 和事务(ACID),高度兼容 MySQL 协议。TiDB 的设计理念是将数据库的水平扩展性、强一致性、高可用性以及云原生特性融为一体。随着版本的迭代,TiDB 在弹性扩展、分布式事务、强一致性基础上进一步针对稳定性、性能、易用性等方面进行优化和增强。

TiDB 新版本近期的关键迭代

性能和稳定性

在新版本中,TiDB 在性能和稳定性上做了关键迭代,包括但不仅限于:

  • 网络 IO 优化 :通过各类攒批方法减少网络交互次数,支持更多的下推算子,以及优化 Region 调度算法,显著提升了性能和稳定性。
  • 缓存应用 :在 block-cache 基础上,tidb-server 层引入了通用的执行计划缓存、Coprocessor 结果集缓存、小表缓存和 Schema Meta 缓存,减少了数据库的资源消耗。
  • 稳定性提升 :通过提升统计信息的准确度、锁定统计信息、周期性全量数据整理(实验特性),分布式框架、优先级队列进一步增强了数据库的稳定性以及可管控性。

可观测性提升

TiDB 新版本在端到端可观测性方面也做了大量工作以降低运维门槛:

  • 日志标识和关联 :通过注入会话别名,利用 Connection ID 连接日志中与会话相关的信息,方便快速的对事务进行端到端追踪,提升了端到端的可观测性。

  • 索引选择观测 :通过内存表 information_schema.(CLUSTER_)TIDB_INDEX_USAGE,可以识别并删除无用索引,识别低效的索引,为业务优化提供便利的手段。

资源管控

新版本引入了资源管控功能,可以更好地管理后台任务,进一步保障业务稳定性:

  • 资源组配置 :通过资源组的规则识别消耗超出预期的查询,主动限流或取消。
  • Runaway Queries 管理 :通过资源组规则,可以有效地管理长时间运行的查询,保障业务稳定性。

分布式执行框架

TiDB v7.1.0 开始引入了分布式执行框架,支持任务拆分到多个 TiDB 节点并行执行,提升了资源管理的效率和统一调度能力。

TiProxy

TiDB 在 v8 版本 TiProxy 正式 GA,这是一个由 TiDB 自研的负载均衡组件,能够通过 TiUP 一键部署,配置虚拟 ip 保障高可用,同时实现业务真正无感知的扩缩容。

TiDB 产品演进计划

蓝功儒老师还分享了在未来的版本中,TiDB 计划引入向量存储、TiKV 存储层缓存、Pipeline DML GA 等新特性,进一步提升性能和稳定性。

向量存储

TiDB 将支持向量存储,这将使得具备更全面的能力,可以真正做一个all in one 的云原生分布式 HTAP 数据库, TiDB 与 AI 的结合更加紧密。

存储层缓存

TiKV 存储层将增加缓存,支持配置最新几个版本号的数据存储在 tikv memory 中,加速高频次、高吞吐、高并发业务场景下 MVCC 数据读取性能。这些改进将进一步降低TiDB 的延迟,保障 SQL 执行的稳定性。

Pipeline DML GA

Pipeline DML 将在 V8.5 版本中正式发布,提供更稳定更高效的大事务支持。这意味着 TiDB 具备稳定高效处理 TB 级别大事务的能力,尤其是在处理大量数据更新和插入操作时。

PD 微服务化

PD 的职能,如 tso 分发服务、调度服务,将被拆分成多个微服务,以更好地应对高并发、高吞吐等高性能要求场景。这种微服务化的架构将降低 PD leader 失败的影响,避免 PD 单个实例的硬件资源成为服务瓶颈。未来也会将 PD 的心跳检测服务微服务化,进一步避免单点瓶颈以及故障的风险。

https://pingcap-cn.feishu.cn/sync/YCoYd6VZ5swdjebitGIcHkbNnxb

Q&A 环节

升级目标版本如何选择?版本升级是否一定是越新越好?

  • 选择 LTS 版本:推荐用户选择长期支持(LTS)版本,如 v6.1、v6.5、v7.1、7v.5,因为这些版本在小版本号达到 3 以上时,通常稳定性已经非常好。
  • 评估当前版本:如果用户当前使用的是 V6 以下的版本,建议升级到 v7.5.3 版本。若当前使用的是 v6.5 版本且稳定性良好,可以考虑小版本升级,例如从 v6.5.5 升级到 v6.5.10 或 v6.5.11。

TiDB v7.5 和 v8.1 的区别是怎样的,怎么选择?

  • v8.1 版本在统计信息收集、稳定性方面进行了改进,如:V8.3 版本支持忽略列的统计信息;且 v8.1 提供了更多保障业务稳定性的手段,如分布式框架和 Resource Control
  • 如果当前使用 V6 版本且稳定性良好,可以考虑不升级;但如果数据量预期会大幅增加,建议升级到 V7.5.3 或 V8.1.1 版本。

v6 版本集群性能没有问题,有必要升级到 v7 或 v8 吗?

  • 如果 V6 版本的统计信息选择的是老版本,且数据量没有太大增长,可以选择不升级,保持稳定运行。
  • 如果数据量预期会达到 200 TB 或 300 TB,建议升级到 V7.5.3 或 V8.1.1 版本。

列存储相比传统的行存储会占用更多空间吗?

  • 通常,列存的压缩比通常比行存高约 10 倍。例如,在TiDB中,如果行存的数据量约为 10TB,且全部数据同步列存引擎TiFlash中后,数据量可能在 1TB 左右。
  • TiFlash(TiDB 的列存引擎)的采用 DeltaTree 引擎,相较传统 OLAP 数据,数据压缩比有一定牺牲,但可以 ms 级别的将 tikv 中的 update 和 delete 数据同步到 tiflash 中。

TiDB 未来版本中是否有类似于binlog的功能,可以分析日志?

  • TiDB 在 V4 之后推出了 TiCDC,目的是替换原有的 binlog 功能。
  • TiCDC 通过并行处理和 TCC(两阶段提交)提高了同步效率;且支持同步到 Kafka 或 MySQL,有助于进一步使用数据。

再次感谢蓝老师为我们分享了 TiDB 新版本的诸多亮点和未来的发展方向!TiDB 也会继续不断在性能、稳定性和易用性方面不断进化,为 TiDB 的使用者们提供更加全面和强大的数据库解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于LORA的一主多从监测系统_数据发送

数据上传我这里使用了问询的方式,这样的好处一是可以用来统计节点的存活状态,二是可以避免冲突,主节点通过向从节点发送问询帧,从节点收到问询帧后开始向主节点发送数据,同时我们也可以加入不同的帧类型,比…

golang的net包

https://learnku.com/docs/the-way-to-go/151-tcp-server/3703 https://www.bilibili.com/video/BV1JP4y1s7rS net包介绍 net包的底层实现依赖于操作系统的网络API。net包提供了跨平台的网络编程接口,使得开发者可以在不同的操作系统上进行网络编程而无需担心底层实…

在数据库中,`SELECT`, `FROM`, `JOIN`, `ON`, 和 `WHERE`各自的作用

在数据库中,SELECT, FROM, JOIN, ON, 和 WHERE 关键字是 SQL 查询语句中用于检索数据的重要部分。它们各自在查询中扮演着不同的角色,但通常一起使用来构造复杂的数据检索操作。下面是它们各自的作用: 1. **SELECT**: - SELECT 关键字用于指…

通用序列化和反序列化实现思路

本文简单的记录一下采用模板来实现序列化与反序列的思路, 同时采用C20标准的concept和requires来简化模板函数的选择。 首先了解一下自定义类支持序列化的两种方式: 一、序列化自定义类型(侵入式) struct Test {std::string na…

4.three.js网格模型介绍和绘制基础点、线、面

4.three.js网格模型介绍和绘制基础点、线、面 1、计算机中3D世界的组成 在计算机世界里,3D世界是由点组成,两个点能够组成一条直线,三个不在一条直线上的点就能够组成一个三角形面,无数三角形面就能够组成各种形状的物体&#x…

Linux基础项目开发day05:量产工具——页面系统

文章目录 一、数据结构抽象page_manager.h 二、页面管理器page_manager.c 三、单元测试1、main.page.c2、page_test.c3、Makefile修改3.1、unittest中的Makefile3.2、page中的Makefile 四、上机实验 前言 前面实现了显示、输入、文字、UI系统,现在我们就来实现页面的…

Axure树形菜单展开与折叠

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:Axure树形菜单展开与折叠 主要内容:树形菜单制作——层级关系——隐藏与显示——值的变化——多层交互 应用场景:关系树、菜…

Python学习的自我理解和想法(15)

学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第15天,从今天开始,每天一到两个常用模块,更完恢复到原来的,开学了,时间不多&am…

滚雪球学Redis[9.1讲]:Redis的常见问题与最佳实践

全文目录: 前言1. Redis的常见问题排查常见错误信息与解决方案性能瓶颈的识别与处理数据一致性问题的排查 2. Redis的最佳实践Redis使用中的通用原则典型业务场景中的最佳实践如何避免Redis中的反模式 小结下期预告 前言 在上一章【第八章:Redis的扩展与…

Java 直接获取 pom.xml 配置的属性值

Java 直接获取 pom.xml 配置的属性值 1.需求描述2.代码示例3.结果演示 系统:Win10 JDK:1.8.0_351 IDEA:2022.3.3 1.需求描述 在开发一个 SpringBoot 项目的时候,需要从 pom.xml 中获取配置的 artifactId,name&#xf…

vscode配置ssh远程连接服务器

注意:重启软件或重启电脑,解决很多问题 一. vscode配置ssh vscode通过ssh连接服务器(吐血总结)_vscode ssh-CSDN博客 二. VScode无法远程连接主机问题 VSCode远程连接服务器报错:Could not establish connection to…

paddleOcr记录

情况1:默认不需要标注电能表样本、训练电能表OCR模型,需调用PaddleOCR出识别字符,对识别信息进行提取 01 – >> test01.py 情况2:需要从无到有标注OCR样本,或已有样本及标签文件,需训练电能表OCR模型…

Redis技术指南:数据类型、事务处理与过期键管理

什么是redis? Redis(Remote Dictionary Server,远程字典服务)是一个开源的、基于键值对的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。Redis支持多种数据结构,如字符串(strings&am…

HCIP-HarmonyOS Application Developer 习题(十六)

(判断)1、HiLink通过分布式软总线的方式连接所有设备,强能力设备可对弱能力设备进行设备虚拟化,将弱设备当做本机设备直接调用。 答案:错误 分析:HiLink 主要针对的是应用开发者与第三方设备开发者&#xf…

K14836 加密通话(call)

题目描述 杰克船长担心船上存在其他海盗船的间谍,于是和他的心腹们设计了一种加密通话方式,其中对数字加密的方式是这样的:如果这个数字是1222334111,可看做1个1,3个2,2个3,1个4,3个1,那么会被加密,1132231431&#x…

力扣 中等 143.重排链表

文章目录 题目介绍题解 题目介绍 题解 class Solution {public void reorderList(ListNode head) {ListNode mid middleNode(head);ListNode head2 reverseList(mid);while (head2.next ! null) {ListNode nxt head.next;ListNode nxt2 head2.next;head.next head2;head2.…

Linux-正则表达式

正则表达式 定义DRE模式-纯文本/特殊字符 定义DRE模式-锚字符/点号字符 定义DRE模式-字符组/排除型字符组 定义DRE模式-区间 定义DRE模式-特殊字符组 定义DRE模式-星号 扩展正则表达式-问号 扩展正则表达式-加号 扩展正则表达式-使用花括号 扩展正则表达式-管道符号/表达式分组…

如何通过CDN优化网站服务器访问速度?

CDN,即内容分发网络(Content Delivery Network),在现代互联网中起着重要作用。它可以显著提升网站服务器的访问速度。以下是CDN在加速网站访问方面的主要优势及其工作原理。 1. 全球分布的服务器节点 CDN通过在全球范围内布设多个…

【Router】路由器中NAT、NAPT、NPT是什么?

参考链接 NAT vs. NAPT: What’s the Difference? IPv6 Network Prefix Translation (NPt) | pfSense Documentation (netgate.com) 趣谈NAT/NAPT的原理,这篇不可不读! - 知乎 (zhihu.com) NAT (Network Address Translation) NAT说明 NAT&#x…

《YOLO 标注工具全览》

《YOLO 标注工具全览》 一、YOLO 标注工具的重要性二、常见的 YOLO 标注工具介绍(一)LabelImg(二)Yolo_Label(三)在线标注工具 Make Sense(四)Ybat - YOLO BBox Annotation Tool&…