TiDB 7.4 发版:正式兼容 MySQL 8.0

2023-10-18 21:19:52     来源:

 

近日,企业级开源分布式数据库厂商 PingCAP 正式发布 TiDB 7.4 (DMR)版本。 TiDB 7.4 将是 TiDB 7 系列最后一个 DMR 版本,针对 MySQL 8.0 做出了诸多优化。作为 MySQL 的全面升级,TiDB 的技术领先性帮助用户应对不断变化的业务数据挑战,实现业务的持续增长和创新。TiDB 在高度兼容 MySQL 8.0 特性的同时,也将持续提供技术支持,确保用户能够平滑地迁移各类业务应用程序,从而减少迁移过程中的工作量和风险。

TiDB 作为新一代分布式关系型数据库,从诞生第一天起拥抱 MySQL 生态,不断兼容 MySQL 5.7 和 MySQL 8.0,为用户带来更加顺畅的迁移和使用体验。TiDB 兼容 MySQL 的语法命令,MySQL 客户端、MySQL 驱动程序以及部分 MySQL 工具可以直接在 TiDB 上运行。对于绝大多数在 MySQL 上运行的应用程序来说,几乎不需要修改任何代码。

MySQL 8.0 做出了诸多功能特性的新增或优化,例如公共表表达式 (CTE) 、窗口函数和资源管控的支持,而且还通过多值索引和优化查询执行提供更强的性能。随着 MySQL 8.0 的发布,TiDB 在兼容 MySQL 5.7 的基础之上,扩展了对 MySQL 8.0 的兼容。TiDB 7.4 现支持以下 MySQL 8.0 关键特性:

公共表表达式(CTE)

TiDB 从 5.1 版本开始支持 ANSI SQL 99 标准的 CTE 及其递归的写法。在编写复杂查询的时候,利用公共表表达式 (CTE) 可以构建一个临时的中间结果集,在 SQL 语句中引用多次,提高 SQL 语句编写效率,可读性,执行效率。在 TiDB 7.4 中,列式存储引擎 TiFlash 也同样支持 CTE。

窗口函数 (window function)

窗口函数能够以 SQL 形式的写法,来完成一些复杂的数据整理工作,协助用户发掘数据价值。例如,数据分组排序, 变化趋势分析等。TiDB 7.4 完整支持了 MySQL 8.0 提供的窗口函数,并且大部分都可以下推到 TiFlash 运行。

资源管控

在多个应用共享一个 TiDB 集群的场景下, 资源隔离可以有效降低应用负载变化对其他应用产生的影响, 资源管理还能解决批量作业及后台任务对核心业务的影响,以及突发的 SQL 性能问题拖慢整个集群,是提升大集群稳定性的重要能力。随着从 7.1 版本引入资源管控,TiDB 能够对集群资源做合理分配,提升数据库的稳定性,并降低数据库的使用成本。TiDB 7.4 兼容了 MySQL 指定资源组的语法以及 hint,降低用户学习成本和迁移成本。同时,TiDB 的资源隔离能够更有效地对最重要的 I/O 资源进行管控,达到和 MySQL 同等甚至更好的效果。

基于角色的权限管理

TiDB 7.4 支持 MySQL 兼容的角色管理。基于角色的授权,可以简化权限管理的工作,并降低了出错的风险。通过将权限与角色相关联,可以更好地控制数据库的访问。用户可以将不同场景的工作进行分类,创建对应角色,并把角色授予有权限的数据库用户, 数据库用户在实际操作时,根据场景不同,切换角色,降低误操作的可能。

增强 uft8mb4 字符集

MySQL 8.0 的另一个重要变化是默认字符集变成了更通用的 uft8mb4 ,默认排序方式变为 utf8mb4_0900_ai_ci 。TiDB 7.4 也加入了 utf8mb4_0900_ai_ci 的排序方式,以便更轻松地进行系统迁移。为了同时兼容 MySQL 5.7 和 MySQL 8.0,TiDB 支持了 MySQL 兼容的变量 default_collation_for_utf8mb4 。允许用户调整 utf8mb4 字符集的默认排序方式。该方式确保了 TiDB 在不同 MySQL 版本之间的平滑过渡,并能够适应不同应用程序的需求。

JSON 多值索引 (Multi-valued Index)

多值索引是对普通索引结构的延伸。不同于普通索引与表 1:1 的对应关系, 多值索引与表的对应是 N:1。与 MySQL 相同, 条件中利用 MEMBER OF() , JSON_CONTAINS() , JSON_OVERLAPS() 这几个函数检索时,都可能会选择到多值索引。TiDB 7.4 支持了"多值索引",允许对 JSON 类型中的某个"数组"进行索引,从而提高了对 JSON 数据的检索效率。与 MySQL 用法完全相同意味着在迁移过程中,无需修改数据建模或应用程序,用户可以继续按照熟悉的方式操作 JSON 数据。

修改会话变量的 hint ( SET_VAR())

MySQL 8.0 引入了一个特殊的 hint SET_VAR() 。利用这个 hint,可以在语句运行期间修改某个会话级系统变量。TiDB 7.4 支持此 hint,提升了系统变量设置的灵活度, 能够针对 SQL 语句做“定制”。

CHECK 约束

CHECK 约束是一致性约束检查的一种,用来维护数据的准确性。 CHECK 约束 可以用于限制表中某个字段的值必须满足指定条件。当为表添加 CHECK 约束后,在插入或者更新数据时,TiDB 会检查约束条件是否满足,如果不满足,则会报错。

MySQL 在 8.0 之前只支持 CHECK 约束的语法,在实际运行中并不会真正去检查, 在 8.0 之后才全面支持。TiDB 7.4 中添加了该功能, 用户可以通过变量 tidb_enable_check_constraint 手工开启。

为了降低用户数据迁移的复杂度,TiDB 推出了一款工具 TiDB Data Migration (DM) 。它能够协助用户从与 MySQL 协议兼容的数据库(MySQL、MariaDB、Aurora MySQL)到 TiDB 的全量数据迁移和增量数据同步。DM 支持 DDL 同步,分库分表合并,并内置多种过滤器以灵活适应不同场景,切实地提升了数据迁移的效率。


标签:

猜你喜欢

校企合作新标杆!思看科技“浙江省博士后工作站”授牌仪式圆满举行
小米有品众筹五轮出行健身电踏车F1:参与人数超2万 短途出行新标杆
MR艺术展顶级盛宴:绝美绽放,爆火出圈!
今日头条联合故宫推出系列视频节目介绍传统文化,全网超两千万人观看
药食同源求创新 践行健康新生活——记中国中医科学院医学实验中心实验室副主任欧阳竞锋
【深度】思特奇:以数智创新带动生产力变革 持续推动千行百业转型升级
携工具组合拳切入门店需求,照明灯饰行业生产力提速
王石为什么选OPPO?手机安全与用户隐私保护的重要性!
纽曼三合一智能储能电源——香港移动电子展全球首发
华为高治国:开启NFV下一个黄金十年,迈向未来智能世界
赛乐瑞京东双十一,囤货好时机,赛乐瑞MAX开启健康人生
“郑青春 向未来” 2023年郑州市系列探企直播活动今日启动
基因港双十一钜惠降临!高端抗衰礼盒助力元气重现
昇腾AI创新大赛2023湖北赛区决赛圆满收官!
联通VR新视界,玩转生活多场景
与Z世代生活共鸣 三星Galaxy Z Flip5引领潮流与创新
听力熊荣获2023GET教育科技大会“教育硬件领军奖”
科技创新,助力新一轮战略性矿产找矿突破行动
重构未来智能生活,小度全屋智能迎来门店和渠道全面升级
科研开拓创新 教育春风化雨 ——记中国海洋大学刘怀山教授
小胶帽蕴含大智慧,飞天新瓶盖你看懂了吗?
智能化赛道PK特斯拉,极越凭什么?
读书郎采访200多位教培校长,如何在浮沉寻找中出路
科技月开幕 小天鹅携技术领先产品重磅亮相
联发科与vivo强强联手,行业首次在手机端侧落地70亿AI大语言模型
四维图新用户大会丨杰发科技与华域视觉达成战略合作 助力智能车灯新发展
抗衰服务哪家强?Timeruler时光尺3.0高端检测,抗衰不再是谜
DeepWay&远池新能源100台智能新能源重卡完成首批交付
Tim Cook空降成都太古里,观战王者荣耀赛事
百度世界2023:移动生态发布简单搜索、新文库、AI编辑器等新品新功能