系统极客一直在努力
专注操作系统及软件使用技能

MySQL 9.0:带来性能提升、JSON 增强和安全性升级等

MySQL

MySQL 9.0 开源关系型数据库管理系统正式发布!新版本不仅带来了强大的新功能,还对现有功能进行了优化,并移除了一些过时的组件,让 MySQL 更加高效、安全。

MySQL 9.0 重要更新

增强 JSON 数据处理能力

MySQL 9.0 的一大功能亮点是对 JSON 数据的高级处理。现在,可以直接将EXPLAIN ANALYZE命令生成的 JSON 输出保存到用户变量中,极大简化了查询调试和优化流程,让开发者能够更轻松地操控和分析执行计划。语法如下:

EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt

预备语句功能扩展

新版本扩展了预备语句的功能,增加了对数据定义语言(DDL)命令的支持,例如CREATE EVENTALTER EVENTDROP EVENT。这一更新让数据库管理脚本更加动态灵活,但需要注意的是,它不支持位置参数,需要将不同输入源的文本组合起来使用。

性能模式新增两张表

为了帮助用户深入了解数据库操作,MySQL 9.0 在性能模式下新增了variables_metadataglobal_variable_attributes两张表,详细记录了系统变量的类型、作用域和允许的值,对于性能微调和维护至关重要。

MySQL 9.0 弃用了性能模式variables_info表中的MIN_VALUEMAX_VALUE列,并使用variables_metadata表中的相似列进行取代。

安全性升级

弃用了 MySQL 8.0 版本中的mysql_native_password认证插件。这意味着,服务器将拒绝来自不支持CLIENT_PLUGIN_AUTH的旧客户端程序的认证请求,进一步加强了 MySQL 的安全性,并鼓励用户采用更安全的认证方法。

更多详细信息,请参考 MySQL 9.0 更新文档


MySQL 8.3 功能更新

支持标签化 GTID 的复制功能

MySQL 8.3 版本的一大亮点是加强了复制和组复制功能,引入了支持标签的全局事务标识符(GTID)。此项改进能让事务集的分组和识别更加直观。

新的 GTID 格式UUID:TAG:NUMBER提供了一种独特的命名方式,便于将 GTID 与特定的事务组相关联。这样可以帮助管理员区分数据操作和管理操作,从而提升复制过程的效率和有序性。

为此,该版本新增了TRANSACTION_GTID_TAG权限,它允许设置 GTID 值,让管理员能够控制权限分配,优化事务管理。

增强的 JSON EXPLAIN 格式

MySQL 8.3 引入了一个新的explain_json_format_version服务器系统变量,它允许管理员在EXPLAIN FORMAT=JSON命令中,在两种不同的 JSON 输出格式之间进行选择。这一特性保证了软件与 MySQL 优化器未来版本的兼容性,增强了长期使用的便利性。

线程池插件的增强

线程池插件现在能够在 MySQL 性能模式中提供更多信息。新增的表格和列项能够提供有关线程池连接和状态的详尽信息,有助于更有效地分析性能。

其他值得关注的变化

  • 系统变量binlog_transaction_dependency_tracking的默认值已被更改为WRITESET,表明该功能正在逐步被淘汰。
  • MySQL 8.3 引入了WITH_LDCMake 选项,让管理员可以选择自己的链接器,同时对 MySQL 企业级数据掩码和去标识化功能进行了增强。
  • 最后,MySQL 性能模式增加了关于线程池连接的详细信息,这对性能调优是非常有价值的资源。

删减功能

在 MySQL 8.3 版本中,也包括了对几项功能和函数的移除,这突出了数据库实践朝着更高效、更现代化方向的转变。

  • 一些关键的 C API 函数,比如mysql_kill()mysql_list_fields()等,已被移除,建议采用其他方式来执行类似操作。
  • 用于清理主机名内部缓存的FLUSH HOSTS命令(之前已经被弃用),也正式从系统中移除了。管理员现在需要通过其他方法来清理主机缓存。
  • 还有一些复制和服务器的相关选项,例如–slave-rows-search-algorithms–log_bin_use_v1_events也已被移除,引导管理员采用更有效、更现代的操作方法。

最后,MySQL 8.3 在基于行的日志记录中,对冲突检查的 writesets 使用进行了限制。表明了对二进制日志事务依赖性跟踪方法的精细化调整。

赞(0) ¥ 赞赏
分享到

评论 抢沙发

微信赞赏