SQL性能分析

SQL执行频率

 通过一下命令可查看当前数据库的 instert update delete select的访问频次

SHOW GLOBAL STATUS LIKE 'Com_______'

 慢查询日志

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有sql语句的日志

MySQL 的慢查询日志默认没有开启,需要在MySQL的配置文件(/etc/my.cnf)中配置

#开启MySQL慢日志查询开关

show_query_log=1

#设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志

long_query_time=2

设置完毕后重启服务进行测试

profile

show profile 能够在做sql优化时帮助我们了解时间都花费在哪里并且通过having_profiling参数,能够看到当前MySQL是否支持profile操作

#profile操作

SELECT @@have_profiling;

#默认profiling是关闭的,可以通过set语句在session/global开启profiling

SET profiling=1

#查看每一条SQL的耗时基本情况

show profiles

#查看指定query_id的SQL语句各个阶段的耗时情况

show profile cpu for query query_id


explain

explain或者desc命令可以获取MySQL如何执行select语句的信息,包括在select语句执行过程中表如何连接和连接的顺序

EXPLAIN SELECT 字段名 from 表名 where 条件

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值