Error number: 4079; Symbol: ER_WARN_DEPRECATED_COLLATION; SQLSTATE: HY000
Message: ‘%s’ is a collation of the deprecated character set %s. Please consider using %s with an appropriate collation instead.
Error 4079: ER_WARN_DEPRECATED_COLLATION
错误说明
Error 4079: ER_WARN_DEPRECATED_COLLATION 是一个MySQL错误代码,它警告用户某种字符集排序规则已被弃用(deprecated),可能会影响查询的性能。当使用陈旧的字符集排序规则时,MySQL将返回此错误。
常见案例
1)当使用show collation命令显示MySQL系统中支持的字符集时,显示的每个字符集都会带有一个叫做“Deprecated”的字段,即此字符集已被弃用。若Deprecated值为1,则会显示此ER_WARN_DEPRECATED_COLLATION错误,说明此字符集已被弃用。
2)当在select语句中使用order by命令时,使用deprecated字符集对字段进行排序时,此ER_WARN_DEPRECATED_COLLATION错误也可能出现,说明应该替换为新的字符集。
解决方法
1)首先,检查受到错误影响的字段上使用的字符集。使用show collation命令可以查看字符集的Deprecated状态,检查是否已经Deprecated(值为1)。若是,则建议改用新的字符集或排序规则。
2)使用MySQL文档中提供的信息,了解更多关于Deprecated字符集的相关信息,例如MySQL8.0版本排序规则的Deprecated。
3)检查所使用的字符集是否过旧,是否有更新的字符集可以替代,可以尝试使用新的字符集或排序规则。
4)检查是否存在使用此Deprecated字符集的残留代码。
5)对于密集查询,可以讨论集群负载平衡,或更改索引,以提高查询性能。