iguoji
V2EX  ›  PHP

小程序商城做活动并发出现问题, Mysql 不执行语句

  •  
  •   iguoji · May 7, 2019 · 4840 views
    This topic created in 2564 days ago, the information mentioned may be changed or developed.
    数据库买的阿里云的 rds

    http://hhzz.oss-cn-beijing.aliyuncs.com/sqlresult_31796.csv

    这个是用 SHOW PROCESSLIST 看到的结果

    谁能帮我看看问题出在哪里?
    12 replies    2019-05-18 08:02:12 +08:00
    iguoji
        1
    iguoji  
    OP
       May 7, 2019
    错误日志基本都是
    SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
    opengps
        2
    opengps  
       May 7, 2019
    死锁。。。
    iguoji
        3
    iguoji  
    OP
       May 7, 2019
    1 主 5 副,nginx 做负载均衡,mysql 在阿里云,主服务器上安装 redis 做 session 和缓存
    卡的期间,主副服务器 CPU 和内存都没问题,带宽也没问题,
    阿里云的 mysql 达到了 90%左右

    主要场景是用户下单,向微信发送 POST 请求,执行统一下单,得到单号,回头等微信的异步通知

    CURL 被封装在一个函数里,5 秒超时
    iguoji
        4
    iguoji  
    OP
       May 7, 2019
    @opengps 能从 PROCESSLIST 里看到原因或是哪一个进程 ID 出的问题吗?
    263
        5
    263  
       May 7, 2019
    我猜是有慢查询,看看索引吧。
    iguoji
        6
    iguoji  
    OP
       May 7, 2019
    @263 应该是这样,倒是有不少慢日志
    lenmore
        7
    lenmore  
       May 8, 2019
    看下 order_detail 的 oid 有没有索引。没有就建一个。
    akira
        8
    akira  
       May 8, 2019
    找个人帮你做下数据库优化吧
    shiny
        9
    shiny  
    PRO
       May 8, 2019
    是不是开始事务之后再去做网络操作?这样极有可能出现这样的错误,网络是不可靠的。
    akstrom
        10
    akstrom  
       May 8, 2019
    优化表,优化业务逻辑
    ratel
        11
    ratel  
       May 8, 2019
    可以做个队列串行处理,你的流量全部打到 MYSQL 肯定不行的,前端做异步轮询结果。
    dsnake1984
        12
    dsnake1984  
       May 18, 2019
    尼玛 用 redis 什么年代啦~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   931 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 21:21 · PVG 05:21 · LAX 14:21 · JFK 17:21
    ♥ Do have faith in what you're doing.