「已注销」 2019-06-15 21:23 采纳率: 0%
浏览 952

mysql update并发出现慢查询,导致服务器504,该如何解决呢?

项目中的订单表,在高并发更新订单数据的时候,会造成mysql执行缓慢,甚至直接造成服务器504错误!

怀疑是mysql的问题,登录阿里云RDS查看mysql日志,发现出现了大量慢日志,每条慢日志update语句执行时间都在60-120秒左右,正常情况1秒内就可以执行完成。

mysql执行语句如下:

UPDATE `ordertab` SET `soldst`=1 WHERE ( `orderno` = 'b105401d61f9348276' ) AND ( `status` = 0 )

请教问题如下:

问题1、出现慢查询的原因是高并发的update语句造成的吗?(大约每秒有10个update操作)


问题2、查看了阿里云mysql慢日志,发现“解析行数”都是该表的总记录数,就是说每条更新都进行了全表扫描吗?(目前没有设置索引)

问题3、对于高并发的update操作,该怎样解决出现执行缓慢的问题呢?我现在的思路是给 orderno 字段设置索引,这样是否可以解决全表扫描的问题?这样会解决并发更新慢的问题吗?或者有什么更好的办法吗?请指点!

  • 写回答

3条回答

  • 无双_ 2019-06-17 13:18
    关注

    首先你这个应该算不上高并发,全表扫描慢可能是你表数据多的原因(这儿不知道你说的正常情况是指什么,测试环境或者数据量少的情况),这个的话索引应该可以解决问题了。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题