22 | MySQL有哪些“饮鸩止渴”提高性能的方法?

短连接风暴

第一种方法:先处理掉那些占着连接但是不工作的线程。

  在show processlist的结果里,kill显示为sleep的线程,但是如果线程中存在事务,事务只能回滚,所以优先kill事务外空闲的连接。
  通过查information_schema库的innodb_trx表,查看事务的具体状态。

第二种方法:减少连接过程的消耗。

  跳过权限验证,重启数据库,并使用–skip-grant-tables参数启动。这样,整个MySQL会跳过所有的权限验证阶段,包括连接过程和语句执行过程在内。但是存在安全问题,尤其是当数据库可以外网访问时,更不能使用。

慢查询性能问题

  导致慢查询的第一种可能是,索引没有设计好。
  导致慢查询的第二种可能是,语句没写好。
MySQL 5.7提供了query_rewrite功能,可以把输入的一种语句改写成另外一种模式。
  导致慢查询的第三种可能,可能是MySQL选错了索引。
  使用查询重写功能,给原来的语句加上force index。

  1. 上线前,在测试环境,把慢查询日志(slow log)打开,并且把long_query_time设置成0,确保每个语句都会被记录入慢查询日志;
  2. 在测试表里插入模拟线上的数据,做一遍回归测试;
  3. 观察慢查询日志里每类语句的输出,特别留意Rows_examined字段是否与预期一致。

QPS突增问题

  业务方把功能停掉。

小结

  你是否碰到过,在业务高峰期需要临时救火的场景?你又是怎么处理的呢?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值