mysql性能:慢查询

2022-08-09,,

Mysql超时。

  • 此时查看mysql性能趋势,通常会发现CPU打满,基本上可以确认和慢查询有关。
  • 打满的这个时间段,每条sql的执行都会超时,但是罪魁祸首就那么几条。

如何避免写出慢Sql

  • 慢sql对数据库的影响,是一个从量变到质变的过程,对量的把握需要有一个认知。
  • 影响mysql的处理因素很多,比如服务器配置数据库数量mysql参数配置数据库繁忙程度,通常这些因素的影响大概在几倍的性能差距,所以我们只要大概掌握一个大致量级,就足够了。

执行SQL数量

  • 一台mysql数据库,大致处理极限是每秒一万条简单sql(一万TPS),简单sql是指类似主键查询这种不需要遍历很多记录的sql。根据服务器的配置,可能低的几千,高的几万。
  • 由于实际的系统不可能只有简单sql,所以实际的TPS要打很多折扣。一般一台mysql服务器,每秒几百条SQL,已经算非常繁忙了

执行SQL时长

  • 查询时长基本上和遍历数据行数正相关,如果遍历行数百万以内,只要不是每秒钟都要执行几十上百次,可以认为是安全的;遍历行数在几百万的,查询时间最少也要几秒钟,就要仔细考虑优化;遍历行数千万量级的,不应该出现在在线系统。
  • 遍历行数在千万左右,是Mysql查询的一个坎。单个表的数据量,也要尽量控制在一千万条以下,最多不要超过二三千万。原因很好理解,千万级别的,带WHERE条件的查询可能还能接受,但是联表的话,很可能需要遍历的数据就超千万级别了。

使用索引

  • 索引会提高查询效率,降低插入、删除和更新的性能。
  • 读多写少,多建索引;写多读少,可以少建。

本文地址:https://blog.csdn.net/weixin_40108561/article/details/107143750

《mysql性能:慢查询.doc》

下载本文的Word格式文档,以方便收藏与打印。