testdocs

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MySQL 8.0.43、8.4.6、9.4.0于北京时间2025年7月22发布,本文先快速罗列我个人最关心的一小部分主要新特性。

默认地,我先不区分8.0.43、8.4.6、9.4.0版本,除非有些特性只在个别版本中存在。

1、客户端工具mysql新增参数--command--skip-command,可以自由定义允许/禁用某些命令。

在此前的8.0.40版本中新增--system-command=ON/OFF总开关,但不能详细自定义具体命令列表。在本次的新版本中则可以更详细自定义允许/禁用哪些命令。

例如:仅允许pager\tee\prompt\tee等命令,或禁用system\source等相对危险的命令。

这个特性非常实用,在GreatSQL Demo环境中我就用到该功能,避免有人通过mysql客户端执行系统命令搞破坏,有效提升系统安全性。

2、在MGR中,当某个节点意外退出且一直未重新加入,此时若有新的节点加入时,可能会反复尝试连接此前已意外退出的节点,这么做可能会导致严重的网络延迟问题。

在新版本中,这个尝试连接意外退出的旧节点只会最多持续5分钟,如果还无法连接则放弃,避免造成更多影响。

3、在重建InnoDB表主键时,如果存在重复数据,可能会遇到问题,这可能会导致服务器意外停止。由阿里Xizhe Zhang贡献,但没有更多细节,只有内部Bug号#37822992。

4、从MySQL 9.4.0开始,back_log参数默认值上调为10000,而此前则默认和max_connections一样大,这有助于提升应对突发大量连接的风险。

以下内容只涉及到MySQL 9.4.0新版本带来的变化。

5、从9.4.0开始,新增参数server_memory用以控制MySQL服务器进程最多可用物理内存。这可能会影响到以下两方面:

  • 影响temptable_max_ram,但没说具体啥影响,吐槽。
  • 影响innodb_buffer_pool_size,当启用innodb_dedicated_server时,则server_memory应设置大于1GB。

此外,当server_memory设置超过物理内存实际上限或在超过容器中可用内存上限时,会导致MySQL实例无法启动并报错。

实际效果还没测试,但是文档中对该新参数的描述非常少,对应的Worklog#16938也不让看,不知道在玩个啥...

感觉可能会像innodb_dedicated_server那样不温不火,有点不太能理解。

6、参数temptable_use_mmap以及MD5()SHA1()开始弃用,未来会被删除,注意不要再使用。

最后说下总体感受,这次的新版本并没啥特别吸睛的地方,给我的感受和前几次差不多,估计Oracle仍忙着创收,暂时无暇顾及MySQL社区版吧,我个人表示这个事能理解,哈哈哈。

今天先到这里,更多新特性和变化,以及9.4.0新版本的体验感受等以后再慢慢分享吧。

posted on 2025-11-02 13:35  testdocs  阅读(50)  评论(0)    收藏  举报