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的一主多从监测系统_数据发送

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

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…

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…

HCIP-HarmonyOS Application Developer 习题(十六)

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

力扣 中等 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…

成都睿明智科技有限公司电商服务可靠不?

在这个短视频风起云涌的时代,抖音不仅成为了人们娱乐消遣的首选平台,更是众多商家竞相追逐的电商新蓝海。成都睿明智科技有限公司,作为抖音电商服务领域的佼佼者,正以其独到的洞察力和专业的服务,助力无数品牌在这片沃…

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具 背景介绍 一直都是本地电脑运行微信开发者工具打包上传。多项目中新老版本对node版本要求不一致,老是切来切去。而且同一个人开发上传需要打包…

pandas-使用技巧

pandas-使用技巧 简单技巧 仅个人笔记使用,感谢点赞关注 简单技巧 pd.to_dict():Dataframe格式数据转字典数据pd.dropna():去nan值& | ~:pd逻辑运算符pd.isnan():判断是否为nan值pd.concat:多个pd拼接…

李宏毅机器学习2022-HW7-BERT-Question Answering

文章目录 TaskBaselineMediumStrongBoss Code Link Task HW7的任务是通过BERT完成Question Answering。 数据预处理流程梳理 数据解压后包含3个json文件:hw7_train.json, hw7_dev.json, hw7_test.json。 DRCD: 台達閱讀理解資料集 Delta Reading Comprehension …

openpnp - 底部相机视觉识别CvPipeLine的参数bug修正

文章目录 openpnp - 底部相机视觉识别的CvPipeLine的参数bug概述笔记openpnp的视觉识别参数的错误原因备注END openpnp - 底部相机视觉识别的CvPipeLine的参数bug 概述 底部相机抓起一个SOD323的元件,进行视觉识别。 识别出的矩形错了,是一个很长的长方…

Qt_软件添加版本信息

文章内容: 给生成的软件添加软件的版权等信息 #include <windows.h> //中文的话增加下面这一行 #pragma code_page(65001)VS_VERSION_INFO VERSIONINFO

TEI text-embeddings-inference文本嵌入模型推理框架

参看: https://github.com/huggingface/text-embeddings-inference#docker 文本嵌入模型榜单 https://huggingface.co/spaces/mteb/leaderboard bge模型下载 https://huggingface.co/BAAI/bge-m3/tree/main export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli dow…

STM32-HAL库 - MAX30102心率血氧传感器 —— 2024.10.15

一、教程简介 本教程使用CubeMX配合Keil5编写代码&#xff0c;带你10分钟拿下MAX30102。在官方例程的基础上进行移植和封装&#xff0c;测量数据准确。采用模拟I2C&#xff0c;任意三个引脚均可驱动。 二、MAX30102简介 MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器…