欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql性能:慢查询

程序员文章站 2022-07-07 20:10:28
Mysql超时。此时查看mysql性能趋势,通常会发现CPU打满,基本上可以确认和慢查询有关。打满的这个时间段,每条sql的执行都会超时,但是罪魁祸首就那么几条。如何避免写出慢Sql慢sql对数据库的影响,是一个从量变到质变的过程,对量的把握需要有一个认知。影响mysql的处理因素很多,比如服务器配置,数据库数量,mysql参数配置,数据库繁忙程度,通常这些因素的影响大概在几倍的性能差距,所以我们只要大概掌握一个大致量级,就足够了。执行SQL数量一台mysql数据库,大致处理极限是每...

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