MySQL查看系统性能参数、统计SQL的查询成本last_query_cost的使用

文章介绍了如何使用SHOWSTATUS语句检查MySQL的系统性能参数,如连接次数、服务器运行时间、慢查询次数等,并强调了Innodb_rows_系列参数在监控数据操作上的作用。此外,讨论了last_query_cost变量在评估SQL查询效率中的应用,指出优化数据读取位置和批量处理能有效提升效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查看MySQL系统性能参数

在MySQL中,可以使用SHOW STATUS语句查询一些MySQL数据库服务器的性能参数、执行频率

语法如下:

SHOW  [ GLOBAL | SESSION]  STATUS  LIKE  '参数';

一些常用的性能参数如下:

  • Connections:连接MySQL服务器的次数
  • Uptime:MySQL服务器上线时间(启动时长,单位:秒)
  • Slow_queries:慢查询次数
  • Innodb_rows_read:select查询返回的行数
  • Innodb_rows_inserted:执行INSERT操作插入的行数
  • Innodb_rows_updated:执行UPDATE操作更新的行数
  • Innodb_rows_deleted:执行DELETE操作删除的行数
  • Innodb_rows_%:查看上述4种的汇总行数

如:

查看连接MySQL服务器次数:

SHOW status LIKE 'connections';

查看MySQL启动时长 :

--MySQL启动时长,单位:秒
SHOW status LIKE 'uptime';

 

查看MySQL慢查询的次数:

--MySQL慢查询的次数
SHOW status LIKE 'slow_queries';

查看select、insert、update、delete对应操作的行数

SHOW status LIKE 'innodb_rows_%';

2、统计SQL的查询成本

  • last_query_cost
  • 使用:SHOW  STATUS  LIKE  'last_query_cost';

一条SQL查询语句在执行前需要确定查询执行计划,如果存在多种执行计划的话,MySQL会计算每个执行计划所需要的成本,从中选择成本最小的一个座位最终的执行计划。

如果我们想要查看某条SQL语句的查询成本,可以在执行完这条SQL语句之后,通过查看当前回话中的last_query_cost变量值来得到当前查询的成本。它通常也是我们评价一个查询的执行效率的一个常用指标。这个查询成本对应的是SQL语句所需要读取的页的数量

例如:student_info表有100万条数据,我们查询

select * from student_info where id = 900001;

结果如下:当前SQL只需要查询1个数据页

select * from student_info where id > 199000;

结果如下:

 使用场景它对于比较开销是非常有用的,特别是我们有好几种查询方式可选的时候。

SQL 查询是一个动态的过程,从页加载的角度来看,我们可以得到以下两点结论:

  1. 位置决定效率。如果页就在数据库缓冲池中,那么效率是最高的,否则还需要从内存或者磁盘中进行读取,当然针对单个页的读取来说,如果页存在于内存中,会比在磁盘中读取效率高很多。
  2. 批量决定效率。如果我们从磁盘中对单一页进行随机读,那么效率是很低的(差不多10ms),而采用顺序读取的方式,批量对页进行读取,平均一页的读取效率就会提升很多,甚至要快于单个页面在内存中的随机读取。

所以说,遇到I/O并不用担心,方法找对了,效率还是很高的。我们首先要考虑数据存放的位置,如果是经常使用的数据就要尽量放到缓冲池中,其次我们可以充分利用磁盘的吞吐能力,一次性批量读取数据,这样单个页的读取效率也就得到了提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值