慢sql导致接口请求超时499

                        调整后nginx请求日志

                                调整前nginx日志

调整前,接口调用很快就超时,因为有策略下线1分钟后继续调用,但每次调用持续不了多久就又超时,看nginx的accesslog有很多状态499的响应时间均大于3秒(因为调用方设置的readtimeout是3秒,所以超过3秒调用方就关闭连接,导致客户端这边499)。

一上去确认问题,查nginx配置,查服务器上相关网络配置(因为有现象:time_wait的tcp链接也比较多 ),看应用程序的cpu,内存,磁盘...及日志也没报错;

最后还是运维提醒有没有慢sql。
show variables like 'slow_query_log';  查看是否开启慢sql查询日志

show variables like 'slow_query_log_file';  慢sql日志文件 

通过查看慢sql日志,确实存在慢sql,update语句为什么会慢呢?理论上都有索引的,但再次看表没有索引。。。因为有同事想在当前表更新字段,但当前表数据量比较大,更新字段ddl执行时间长,使用了rename table A to..A_bak。

使用create table A select * from A_bak where 1=0;  这个语句创建的表,结果A表和A_bak表的字段结构一致,但这波操作后缺少了A表的索引,导致A表很多慢sql!

可使用create table A like A_bak;  这样结构就一致了(包含索引)

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值