sql性能分析

sql性能分析

sql 执行频率

通过 show [ session | global] status 命令可以提供服务器状态信息,可以查看蛋清全数据的insert、update、delete、select 访问频率

session 表示当前会话,global表示全局

com后跟7个下划线

show global status like 'com_______

慢查询日志

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

mysql慢查询日志默认关闭,需要在mysql的配置文件中配置 /etc/my.cnf


#开启慢查询日志
slow_query_log = 1

#设置慢查询时间,超过2秒视为慢查询
long_query_time = 2

慢查询日志位置:/var/lib/mysql/localhost-slow.log

  • 查询是否开启

show variables like 'slow_query_log'

profile 详情

默认关闭

查看数据库是否支持 profile

select @@have_profiling

查看是否开启

select @@profiling

开启profile

set profiling = 1

查看所有sql执行耗时

show profiles

根据query_id查询指定sql耗时详情

show profile for query query_id

sql语句cpu使用情况

show profile for query query_id

explain 执行计划

desc select from mall_userexplain select from mall_user

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfgT7rix-1650205150491)(img/explain.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IxJN1OZB-1650205150493)(img/explain2.png)]

字段含义:

  • id:

select 查询的序列号,标识查询中执行select子句或者操作表的顺序(id相同,执行属性从上到下,id不同,值越大,越先执行)

  • select_type

表示select类型,常见类型 simple(简单表,不使用表链接或者子查询),primary(主查询,即外层的表),union,subquery

  • type

连接类型: 性能由好到差 null, system, const,eq_ref,ref, range,index,all

主键或者唯一性索引查询时 type为 const

  • possible_key

可能用到的索引,一个或多个

  • key

实际用的索引

  • key_len

索引长度,该索引字段的长度

  • ref

  • rows

执行查询的行数,不准确

  • filtered

返回结果的行数占需读取行数的百分比,filtered的值越大越好

  • extra

额外信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值