MySQL 9.0 相较于 MySQL 8.0 引入了多项重要改进和新特性
MySQL 9.0 相较于 MySQL 8.0 引入了多项重要改进和新特性,以下是两者的主要区别及其详细说明:
1. 认证机制
MySQL 8.0
- 支持
mysql_native_password
和caching_sha2_password
认证插件。 - 默认使用
caching_sha2_password
,但未完全移除mysql_native_password
。
MySQL 9.0
- 完全移除
mysql_native_password
:- 该插件被彻底移除,不再支持旧版客户端(如不支持
CLIENT_PLUGIN_AUTH
的客户端)。 - 强制使用更安全的
caching_sha2_password
认证插件。
- 该插件被彻底移除,不再支持旧版客户端(如不支持
- SHA-1 弃用:
- 移除对 SHA-1 哈希算法的支持,改用更安全的算法(如 SHA-256)。
2. 向量数据类型(VECTOR)
MySQL 8.0
- 不支持向量数据类型。
MySQL 9.0
- 新增
VECTOR
类型:- 用于存储 4 字节浮点数列表(最大支持 16383 个元素),适用于机器学习、AI 向量搜索等场景。
- 示例:
CREATE TABLE v1 (c1 VECTOR(5000)); -- 最大存储 5000 个浮点数
- 向量操作函数:
STRING_TO_VECTOR()
/TO_VECTOR()
:将列表字符串转换为二进制向量。VECTOR_TO_STRING()
/FROM_VECTOR()
:将二进制向量转换为字符串。VECTO