dbaplus社群 2024年10月18日
MySQL 9.1正式发布,有哪些值得关注的新特性?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

MySQL创新版9.1.0于2024年10月15日正式发布,该版本带来了诸多新功能和改进,例如DDL操作的原子性增强,审计和防火墙功能的优化,以及编译和SQL函数方面的改进。此外,MySQL8.0.40和8.4.3补丁版本也同时发布,其中8.4.3是目前MySQL的LTS长期支持版本,该版本将不再新增功能,仅提供错误修复。

🎉 **DDL原子性增强:** 之前的版本中,“CREATE DATABASE” 和 “DROP DATABASE”并没有实现真正的崩溃安全,导致在特定情况下数据库目录无法正常创建或删除。新版本已解决该问题,确保DDL操作的原子性和崩溃安全性。

🛡️ **审计和防火墙功能优化:** 之前的版本中,审计和防火墙功能会认为非字母开头的用户名称为无效用户,例如,“$foo”。新版本已解决该问题,支持更灵活的用户名称格式。

🛠️ **编译和SQL函数改进:** 新版本修复了大量的兼容性问题,并对编译过程进行了优化。此外,还解决了在使用DATABASE()函数和DISTINCT关键字时出现的错误,并对JavaScript存储程序和VECTOR类型存储程序进行了改进。

🔐 **安全增强:** 新版本移除了所有MySQL密钥环组件中对不安全的AES ECB的支持,并修复了“SET PERSIST”中关于LDAP认证密码保存的错误,进一步提升了数据库的安全性和稳定性。

🚀 **其他改进:** 新版本还对JavaScript存储程序、VECTOR类型存储程序、SqlResult对象等进行了改进,使其更加完善和易用。

徐轶韬 2024-10-18 07:15 广东

MySQL创新版9.1.0于2024年10月15日正式发布。

MySQL创新版9.1.0于2024年10月15日正式发布。此外,MySQL8.0.40及8.4.3补丁版本也同时发布。8.4.3是目前MySQL的LTS长期支持版本,该版本中将不会增加新的功能与特性,仅提供错误修复。新功能与新特性仅在创新版中发布。让我们一起快速浏览一下9.1.0中有哪些新的内容。


DDL原子性:MySQL已经支持DDL操作的原子性,但是在之前版本中的“CREATE DATABASE” 和 “DROP DATABASE”并没有实现真正的崩溃安全,原因在于当操作系统上的数据库目录创建后如果“CREATE DATABASE”语句没有成功提交,该目录并不会删除,需要手动进行删除,反之,目录删除后,“DROP DATABASE”没有成功提交会造成系统错误。该问题已经在新版本中解决。


审计和防火墙:在之前的版本中,审计和防火墙功能会认为非字母开头的用户名称为无效用户,例如,“$foo”。在该版本中已解决该问题。


关于编译:编译部分中修复了大量的兼容性问题,并作出一些改进,其中“SQL_I_list” 使用成员字段 “next” 来跟踪指向下一个对象的指针,该指针字段在构造列表对象时初始化为成员字段的地址。默认的赋值运算符采用的是成员级赋值,只有使用常规构造函数构造的列表对象才适用,这不适用于空列表。因此,新版本通过提供自定义的移动构造函数和赋值操作符函数来解决这个问题。此外,新版本还将“save_and_clear()”的实现更改为使用“std::move()”而不是赋值操作。感谢腾讯团队和Xingyu Yang对该修复的贡献。


SQL函数与操作

新版本解决了当将DATABASE()函数用作 UNION 查询的一部分时输出被截断问题。

在某些情况下,当使用DISTINCT时,相同的值进行SUM()会产生不同的结果。例如,


mysql> SELECT SUM(b'1100'), SUM(DISTINCT b'1100');+--------------+-----------------------+| sum(b'1100') | sum(DISTINCT b'1100') |+--------------+-----------------------+|12 |9 |+--------------+-----------------------+


这是因为在使用“DISTINCT”时,会创建一个临时的表用于保存值,以便在最后将产生唯一的值返回给用户。之前创建这样的表时,没有考虑到已经确定的数据类型和长度,对它们重新计算。现在则考虑已经确定的数据类型和长度。


JavaScript:


let result = session.runSql("SELECT * FROM t")
for (let row of result) {console.log(row.c1+row.c3);}


JavaScript现在完全支持VECTOR类型存储程序。向量现在可以用作输入参数,输出参数,预处理语句bind()参数,并返回值。


Keyring

从所有MySQL密匙环相关的组件中移除对不安全的AES ECB的支持。


可插拔认证

“SET PERSIST”中解决了“Authentication_ldap_simple_bind_root_pwd =password”没有实际保存密码的错误。


<1>



>
>''>
>''
>




""""""""










Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MySQL 数据库 创新版 新功能 安全 性能 改进
相关文章