mysql性能:慢查询

Mysql超时。

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

如何避免写出慢Sql

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

执行SQL数量

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

执行SQL时长

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

使用索引

  • 索引会提高查询效率,降低插入、删除和更新的性能。
  • 读多写少,多建索引;写多读少,可以少建。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值