更新时间:2025-04-09 gmt 08:00
存储过程和相关表字符集不一致导致执行缓慢-j9九游会登录
场景描述
rds for mysql存储过程执行很慢,处理少量数据耗时1min以上,而单独执行存储过程中的sql语句却很快。
原因分析
存储过程和相关表、库的字符集不一致,导致查询结果存在大量字符转换,从而执行缓慢。
排查过程:
使用如下命令查看存储过程和相关表的定义,观察存储过程和表的字符集是否一致。
show create procedure xxx; show create table xxx
示例:
mysql> show create procedure testproc \g *************************** 1. row *************************** procedure: showstuscore sql_mode: strict_trans_tables,no_auto_create_user,no_engine_substitution create procedure: xxx character_set_client: utf8mb4 collation_connection: utf8mb4_general_ci database collation: utf8_general_ci 1 row in set (0.01 sec)
可以看出,上述存储过程collation为utf8mb4_general_ci,而所在库collation默认为utf8_general_ci,collation值不一致,容易导致性能问题。
j9九游会登录的解决方案
将存储过程和相关表、库的字符集改成一致后,执行缓慢问题解决。
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨