短连接暴涨

1.踢掉部分连接:优先踢掉事务外的连接(可能有损)
2.关闭连接和SQL执行时的权限验证(高风险操作,可能导致安全问题)

查询慢

  1. 索引没有设计好
    1. online DDL加索引(应急的方案是可以先备库DDL,然后主备切换,然后原主库DDL)
  2. SQL语句写的有问题

    1. MySQL 5.7后支持query rewrite功能,可以匹配到目标SQL语句并执行替换。
      1. insert into query_rewrite.rewrite_rules(pattern, replacement, pattern_database)
      2. values ("select * from t where id + 1 = ?", "select * from t where id = ? - 1", "db1");
      3. call query_rewrite.flush_rewrite_rules();
  3. MySQL选错了索引

    1. 为目标SQL使用force index,强制绑定索引。(可以修改业务代码,或者使用query rewrite)

      QPS突增

  4. 数据库白名单去掉突增的业务系统权限。

  5. 如果突增的功能是单独的DB用户,可以用管理员账号把该用户删掉,然后断开现有的连接。
  6. 直接使用query rewrite将异常SQL替换为select 1。