[特殊字符] 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 更适合做执行计划对比工具,而非绝对性能指标 。

相关推荐
开开心心就好30 分钟前
PDF转长图工具,一键多页转图片
java·服务器·前端·数据库·人工智能·pdf·推荐算法
卡拉叽里呱啦1 小时前
深入理解事务一致性和隔离性
数据库
liweiweili1262 小时前
基于金庸武侠小说人物关系设计的完整 SQL 语句,包括数据库创建、表结构定义和示例数据插入
数据库·sql·oracle
梓沂3 小时前
centos7 安装memcached
数据库·缓存·memcached
TDengine (老段)3 小时前
TDengine 数据订阅支持 MQTT 协议用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
灵犀物润4 小时前
MySQL 8 与 PostgreSQL 17 对比分析及迁移指南
数据库·mysql·postgresql
二闹4 小时前
别再傻傻分不清!MyBatis两种分页方式到底用哪个?
后端·mysql
异世界贤狼转生码农4 小时前
Ubuntu操作系统下使用mysql、mongodb、redis
mysql·mongodb·ubuntu
IBMS楼宇自控5 小时前
IBMS-建筑内分散的子系统(如 BA、安防、消防、能源、电梯等)进行数据互联、功能协同与智能管控
大数据·数据库·人工智能