美文网首页
后端存储8(处理慢SQL)

后端存储8(处理慢SQL)

作者: 兮兮码字的地方 | 来源:发表于2020-10-03 10:36 被阅读0次

慢 SQL的排查与防范

1,观察MySQL 的 CPU 利用率图,从监控图上看,故障时段 MySQL 的 CPU 利用率是否很高。这种情况下,MySQL 基本上处于一个不可用的状态,执行所有的 SQL 都会超时。

2,MySQL 这种 CPU 利用率高的现象,绝大多数情况都是由慢 SQL 导致的,所以优先排查慢 SQL。MySQL 和各大云厂商提供的 RDS 都能提供慢 SQL 日志,分析慢 SQL 日志,是查找类似问题原因最有效的方法。一般来说,慢 SQL 的日志中,会有这样一些信息:SQL、执行次数、执行时长

3,当数据库非常忙的时候,它执行任何一个 SQL 都很慢。所以,并不是说,慢 SQL 日志中记录的这些慢 SQL 都是有问题的 SQL。大部分情况下,导致问题的 SQL 只是其中的一条或者几条。不能简单地依据执行次数和执行时长进行判断,但是,单次执行时间特别长的 SQL,仍然是应该重点排查的对象。

4,查询高频的数据一般会做缓存,如果由于缓存刷新慢,也会很多请求无法命中缓存,请求直接穿透缓存打到了数据库上面,给服务器造成压力。

5,建议:上线一个定时监控和杀掉慢 SQL 的脚本。这个脚本每分钟执行一次,检测上一分钟内,有没有执行时间超过一分钟(这个阈值可以根据实际情况调整)的慢 SQL,如果发现,直接杀掉这个会话。这样可以有效地避免一个慢 SQL 拖垮整个数据库的悲剧。

6,建议:做一个简单的静态页面的首页作为降级方案,只要包含商品搜索栏、大的品类和其他顶级功能模块入口的链接就可以了。在 Nginx 上做一个策略,如果请求首页数据超时的时候,直接返回这个静态的首页作为替代。这样后续即使首页再出现任何的故障,也可以暂时降级,用静态首页替代。至少不会影响到用户使用其他功能。

相关文章

  • 后端存储8(处理慢SQL)

    慢 SQL的排查与防范 1,观察MySQL 的 CPU 利用率图,从监控图上看,故障时段 MySQL 的 CPU ...

  • 存储过程

    定义: 一组预编译好的SQL语句,可以理解成批量处理语句. 存储过程a : (SQL语句1;SQL语句2;SQL语...

  • 查询处理 - 查询处理流程

    查询处理 熟悉查询处理流程 查询处理流程 查询流程由下面5个后端进程处理。 Parser从客户端接收SQL语句,解...

  • MySQL函数&存储过程

    上一篇文章中说到了定位慢sql,拿到了慢sql后,我们要怎么重现问题呢?那么就需要造数据。函数和存储过程就可以帮助...

  • 存储过程

    存储过程 存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。 ...

  • 后端存储9(mysql索引)

    怎么能避免写出慢SQL 慢sql的量化指标 一台 MySQL 数据库,大致处理能力的极限是,每秒一万条左右的简单 ...

  • MySQL --- 存储引擎

    存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等...

  • 史上最全MySQL架构,助你深度掌握MySQL开发管理,赢在大数

    前言 MySQL服务器由SQL层和存储引擎层构成。SQL层主要功能包括权限判断、SQL解析功能和查询缓存处理等,存...

  • impala 概念及其特性

    impala是什么? Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询...

  • MySQL存储引擎之概览

    1 MySQL存储引擎简介 存储引擎是MySQL用于处理不同表类型的SQL操作的组件。 InnoDB是默认的也是最...

网友评论

      本文标题:后端存储8(处理慢SQL)

      本文链接:https://www.haomeiwen.com/subject/ayomuktx.html