AWS Lambda中pymysql执行RDS MySQL查询超时问题求助
解决AWS Lambda连接RDS MySQL查询超时问题
可行解决方法
调高Lambda函数超时阈值
Lambda默认超时为3秒,你当前触发15秒超时,说明已调整过但仍不足。若查询数据量较大或RDS实例配置偏低,可将超时时间上调至最大值15分钟,后续根据实际查询耗时再做优化。排查RDS实例性能瓶颈
登录AWS控制台查看RDS的CPU使用率、内存占用、磁盘IO等指标:- 若CPU持续高负载,升级RDS实例规格;
- 若磁盘IO存在瓶颈,切换至gp3等更高IOPS的存储类型。
优化查询与表结构
避免使用SELECT *,仅查询所需字段以减少数据传输量;为customers表的查询关键字段(如过滤、排序字段)添加索引,消除全表扫描带来的性能损耗。将Lambda部署至RDS所在VPC
即使安全组允许公网访问,跨公网的网络延迟也可能导致超时。把Lambda放到RDS所在的VPC子网内,让流量走内网,大幅降低延迟。完善数据库连接参数
在pymysql.connect中添加读写超时配置:conn = pymysql.connect( host='@@@@@@@@@@@.us-east-1.rds.amazonaws.com', user='admin1', password="mypassword", connect_timeout=10, read_timeout=30, write_timeout=30 )用RDS性能洞察定位慢查询
通过RDS性能查看具体等待事件,比如锁等待、表锁等,精准定位查询执行缓慢的根源。
内容的提问来源于stack exchange,提问作者ardito.bryan
相关产品推荐
相关产品推荐

