1)在MySQL 8.0中,已移除了在MySQL 8.0中已废弃的mysql_native_password认证插件,并且服务器现在拒绝来自没有CLIENT_PLUGIN_AUTH能力的旧客户端程序的mysql_native认证请求。为了向后兼容性,mysql_native_password仍然在客户端上可用;客户端内置的认证插件已转换为动态加载插件。这些更改还涉及移除以下...
MySQL 9.0 创新版发布,大失所望。。
大家好,我是程序员鱼皮。2024年7月1日,MySQL发布了9.0创新版本。与常见的LTS长期支持版本不同,创新版本发布更频繁,会更快地推出新的特性和变更,可以理解为“尝鲜版”,适合追求前沿技术的同学体验。
我通过阅读官方文档,完整了解了本次发布的新特性,结果怎么说呢,唉,接着往下看吧。。。
下面鱼皮带大家“尝尝鲜”,来看看MySQL 9.0创新版本有哪些主要的变化。
新特性1、Event相关SQL语句可以被Prepared
在MySQL中,事件(Events)是一种可以在预定时间执行的调度任务,比如定期清理数据之类的,就可以使用事件。
MySQL 9.0对事件SQL提供了Prepared支持,包括:
prepared准备语句是一种预编译的SQL语句模板,可以在执行时动态地传入参数,从而提高查询的性能和安全性。
比如下面就是一个准备语句,插入的数据可以动态传入:
2、Performance Schema新增2张表
MySQL的Performance Schema是一个用于监视MySQL服务器性能的工具。它提供了一组动态视图和表,记录了MySQL服务器内部的活动和资源使用情况,帮助开发者进行性能分析、调优和故障排除。
本次新增的表:
3、SQL语句优化
现在可以使用以下语法将EXPLAIN ANALYZE(分析查询执行计划和性能的工具)的JSON输出保存到用户变量中:
随后,可以将这个变量作为MySQL的任何JSON函数的JSON参数使用。
4、向量存储
AI的发展带火了向量数据库,我们可以利用向量数据库存储喂给AI的知识库和文档。
虽然MySQL官方更新日志中并没有提到对于向量数据存储的支持,但是网上有博主在MySQL 9.0社区版中进行了测试,发现其实已经支持了向量存储,如图:
在此之前,MySQL推出过一个专门用于分析处理和高性能查询的数据库变体HeatWave,本来以为只会在HeatWave中支持向量存储,没想到社区版也能使用。如果是真的,那可太好了。
5、其他
此外,还优化了Windows系统上MySQL的安装和使用体验。
废弃和移除
1)在MySQL 8.0中,已移除了在MySQL 8.0中已废弃的mysql_native_password认证插件,并且服务器现在拒绝来自没有CLIENT_PLUGIN_AUTH能力的旧客户端程序的mysql_native认证请求。为了向后兼容性,mysql_native_password仍然在客户端上可用;客户端内置的认证插件已转换为动态加载插件。
这些更改还涉及移除以下服务器选项和变量:
2)Performance Schema中variables_info表的MIN_VALUE和MAX_VALUE列现在已废弃,并可能在将来的MySQL版本中移除。开发者应该改为使用variables_metadata表的MIN_VALUE和MAX_VALUE列。
3)ER_SUBQUERY_NO_1_ROW已从忽略包含IGNORE关键字的语句的错误列表中移除。这样做的原因如下:
升级到9.0后,如果包含SELECT语句的UPDATE、DELETE或INSERT语句使用了包含多行结果的标量子查询,带有IGNORE关键字的语句可能会引发错误。
总结
看了本次MySQL 9.0创新版的更新,说实话,大失所望。在这之前,网上有很多关于MySQL 9.0版本新特性的猜测,结果基本上都没有出现。毕竟距离MySQL上次发布的大版本8.0已经时隔6年,本来以为这次MySQL会有一些王炸的新特性,结果呢,本次除了修复了100多个Bug之外,几乎没啥对开发者有帮助的点。别说没帮助了,我估计很多同学在看这篇文章前都没接触过这些有变更的特性。
我们最关注的,无非就是使用难度、成本和性能提升对吧,最好是什么代码都不用改,直接升级个数据库的版本,性能提升个几倍,还能跟老板吹一波牛皮。
你看看隔壁的PostgreSQL,这几年,都已经从11更新到17版本了,AI时代人家也早就能通过插件支持存储向量数据了。MySQL你这真的是创新么?
最后,MySQL 9.0创新版本的下载地址我就不放了,咱还是老老实实用5.7和8.0版本,MySQL的新版本,还有很长一条路要走呀!2024-08-22