[特殊字符] MySQL性能参数查询总结

核心语句​

使用 SHOW STATUS语法查询服务器性能指标:

sql 复制代码
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操作删除的行数
Com_select 查询操作执行的次数
Com_insert 插入操作执行的次数(批量插入仅计数一次)
Com_update 更新操作执行的次数
Com_delete 删除操作执行的次数
  1. ​关键用途​

    1. 监控数据库负载(如连接数、运行时间)。

    2. 分析SQL执行频率(增删改查次数)。

    3. 定位性能问题(如慢查询数量、InnoDB引擎的行操作统计)。

MySQL 查询成本(Query Cost)核心笔记

一、last_query_cost 是什么

  • 定义:系统状态变量,记录上一查询的预估 I/O 成本,由查询优化器计算
  • 作用:优化器选执行计划(如索引、全表扫)的依据,对比不同计划 "成本"
  • 单位:随机数据页读取次数,代表 "完成查询预计读多少磁盘块"

二、"高成本" 查询未必慢的原因

优化器按随机 I/O 模型估算,实际执行受物理机制影响:

  1. I/O 类型差异
    • 随机 I/O:磁头频繁移动,读取零散数据页,效率低
    • 顺序 I/O:连续读取相邻数据页,效率高
    • 全表扫虽 last_query_cost 高,但触发顺序 I/O,实际执行可能很快
  2. 缓冲池(Buffer Pool)
    • 内存缓存磁盘数据页,查询优先读内存(缓存命中),无需磁盘 I/O
    • 预读机制:智能批量加载连续数据页到内存,降低实际耗时

三、实践应用要点

  1. 对比使用,而非绝对值
    加索引后,若 last_query_cost 显著下降,说明优化器认为新计划更优(通常利好性能,但不绝对)
  2. 综合判断真实性能
    结合 SHOW PROFILES(执行时间)、Innodb_buffer_pool_reads(实际磁盘读)等指标,避免仅依赖 last_query_cost

四、核心结论

优化器的 "成本模型"(理论估算)≠ 引擎的 "物理执行"(真实性能),需结合场景综合分析,last_query_cost 更适合做执行计划对比工具,而非绝对性能指标 。

相关推荐
wuyikeer11 小时前
如何在docker中的mysql容器内执行命令与执行SQL文件
sql·mysql·docker
m0_7164300711 小时前
HTML函数能否用触控板高效编写_触控硬件操作体验评估【汇总】
jvm·数据库·python
2401_8359568111 小时前
Golang怎么安全关闭channel_Golang channel关闭教程【通俗】
jvm·数据库·python
Absurd58711 小时前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
m0_6742946411 小时前
宝塔面板如何设置网站强制HTTPS_配置Nginx自动跳转规则
jvm·数据库·python
qq_4240985611 小时前
HTML函数开发用可拆卸键盘设计实用吗_模块化硬件体验评估【指南】
jvm·数据库·python
Wyz2012102411 小时前
CSS如何实现Less颜色函数自动计算渐变_使用lighten与darken实现视觉反馈
jvm·数据库·python
weixin_4585801211 小时前
CSS如何通过Emotion管理样式加载顺序_处理组件优先级问题
jvm·数据库·python
qq_3345635511 小时前
golang如何优化GORM查询性能_golang GORM查询性能优化方法
jvm·数据库·python
weixin_4249993611 小时前
CSS如何处理移动端弹窗背景滚动_使用JS控制配合CSS样式锁定
jvm·数据库·python