假如使用版本低于 MySQL 8.0 的数据库,在站点健康检查中会收到 WordPress 6.5 的提示:“陈旧的 SQL 服务器”,WordPress 为什么建议MySQL 8.0 或更高版本?本文将 MySQL 8 带来的一些新特性和性能改善做出介绍。
MySQL 8 对比 MySQL 5.7 的新特性及性能改善
JSON支持
MySQL 8: 引入了更加完善的JSON功能,包括JSON数据类型和多种JSON函数,使得处理和查询JSON数据变得更为高效。
MySQL 5.7: 虽然也支持JSON数据类型,但相对于MySQL 8来说,功能相对较为简单。
字符集和排序规则
MySQL 8: 支持更多的字符集和排序规则,包括UTF8MB4字符集作为默认字符集,支持更多语言和符号。
MySQL 5.7: 默认字符集是UTF8,而不是UTF8MB4,支持的字符集和排序规则相对较少。
Window函数
MySQL 8: 引入了窗口函数(Window Functions),如ROW_NUMBER()、RANK()、DENSE_RANK()等,使得数据分析和处理更为便捷。
MySQL 5.7: 不支持窗口函数,需要通过复杂的SQL查询来实现类似的功能。
CTE(公共表表达式)
MySQL 8: 支持公共表表达式(Common Table Expressions,CTE),使得复杂查询更为简洁和可读。
MySQL 5.7: 不支持CTE,需要使用临时表或者子查询来实现类似功能。
身份验证插件
MySQL 8: 引入了更加安全的身份验证插件,如caching_sha2_password,提供了更高级的加密方式。
MySQL 5.7: 默认使用mysql_native_password,安全性相对较低。
性能改善
MySQL 8: 在查询优化、索引算法和锁机制等方面都进行了优化,性能相对于MySQL 5.7有显著提升。
MySQL 5.7: 虽然也有一定的性能优化,但相比MySQL 8,仍有提升空间。
MySQL 8 对于 WordPress 网站的具体改进
性能优化
由于 MySQL 8 在性能方面进行了多方面的优化,WordPress 网站在高并发访问下的响应速度和处理能力都有所提升。
安全性增强
MySQL 8 引入了更加先进的身份验证插件,如 caching_sha2_password,为 WordPress 网站提供了更高级的安全保障。
JSON 支持
对于使用 WordPress REST API 或者存储复杂数据结构的 WordPress 插件和主题,MySQL 8的 JSON 支持能够提供更高效的数据存储和查询。
更多字符集支持
MySQL 8的 UTF8MB4 字符集支持更多的语言和符号,对于多语言的WordPress网站更为友好。
MySQL 5.7 实际上也支持 UTF8MB4 字符集。在 MySQL 5.5之后,UTF8MB4 已经被引入并得到了广泛使用,尤其是在处理表情符号和一些特殊字符时。
但是,值得注意的是,MySQL 5.7 中的 UTF8MB4 默认字符集是 utf8mb4_unicode_ci,而不是 MySQL 8 中的 utf8mb4_unicode_520_ci。这意味着在排序和比较方面,两个版本的行为可能会有所不同。
对于WordPress网站来说,尽管 MySQL 5.7 支持 UTF8MB4,但 MySQL 8 在处理复杂字符集和排序规则方面提供了更多的灵活性和选项,这可能会对某些特定的应用场景有所帮助。
丰富的查询功能
窗口函数和公共表表达式等新功能使得对WordPress数据库进行复杂查询和数据分析变得更为便捷和高效。
总体而言,MySQL 8 相比 MySQL 5.7 在性能、安全性和功能方面都有显著的提升,对于 WordPress 网站来说,这些改进能够带来更好的用户体验和更高的运行效率。
总结
WordPress 建议升级 MySQL 的最重要原因是:MySQL 5.7 已停止维护支持,于2023年10月31日后将不再获得包括问题修复和功能更新在内的任何维护和支持,这意味着可能存在潜在的安全风险。
如果使用自建服务器或云服务器的网站,如服务器内存小于 6G,编译安装 MySQL 8.0 可能失败。建议借助 Swap 虚拟内存,以实现成功升级版本及获得更好的使用体验。
提示:低配置主机,依然可继续使用 MySQL 5.5 以上版本,如内存实在太小,MySQL 8 不会发挥任何优势,甚至可能引发因内存不足而导致的宕机。