跳到主内容
培训资料专业资料更新于 2026-07-286 分钟阅读

MySQL 8 慢查询不能复制业务 SQL:如何只读提取脱敏指纹摘要

提供经过 MySQL 8.0/8.4 隔离验证的两张只读 SQL 卡:先核对表与索引目录,再按 24 小时窗口提取 Top 50 脱敏查询指纹;不读取或输出完整业务 SQL。

摘要

不能复制客户 SQL 时,先用只读目录卡固定对象边界,再用 performance_schema 摘要卡按 digest、调用次数、耗时和扫描行数排序;结果只用于人工复核,不自动加索引或改参数。

适用对象

MySQL DBA数据工程师后端工程师实施交付团队
核心结论
  • MySQL 8.0/8.4 可先读取表与索引目录,再从 performance_schema 获取最近 24 小时 Top 50 digest 聚合。
  • 摘要卡不读取 DIGEST_TEXT,只输出 schema 哈希、digest、调用次数、耗时、扫描行数和最近观察时间。
  • `EXPLAIN`用于查看计划;`EXPLAIN ANALYZE`会实际运行语句,生产使用前必须单独评估权限和影响。
  • 两张卡均不要求生产密码、完整客户SQL或自动改索引;容器验证不等于客户或生产环境已验证。

READ AND ACT

不必读到文末,现在就可以做下一步

先下载只读工作表或完成 5 分钟自查;只有需要固定范围人工判断时,再查看数据库健康体检。

这些入口不要求提交数据库、SQL、日志或公司信息;服务范围和资料边界以目标页面说明为准。

01搜索问题

慢查询排查前,先收集哪几类证据

把业务现象、SQL证据、执行计划、数据库状态和变更时间线放到同一个时间窗。

有效的首轮材料应能回答五个问题:什么时候慢、哪个业务动作受影响、哪类SQL出现、执行计划看到什么、当时数据库和基础资源发生了什么。只有某一项异常,不足以直接推出修改索引或参数。

工作表使用脱敏SQL或SQL指纹。客户名称、订单号、账号、IP、完整业务条件和密码不应进入公开文件;需要原始材料时只保存受控引用。

五类只读证据
证据组填写内容可以帮助判断不能直接证明
业务窗口开始/结束时间、现象、影响范围、基线问题是否集中在特定窗口不能单独定位SQL根因
慢日志阈值、摘要、耗时、锁、扫描/返回行哪些语句值得进一步复核没有记录不代表没有慢查询
执行计划访问类型、估算行、实际行边界、临时表/排序优化器如何计划执行不能替代业务语义和负载判断
数据库状态索引、表规模、统计信息、锁、连接计划和并发是否存在风险信号不能自动授权变更
资源与变更CPU/IO、发布、结构/数据量变化是否存在共同时间线相关不等于因果
02执行工作流

先只读复核,再决定是否进入变更

先固定时间窗和业务影响,再收集最小证据并核对缺口。若只读材料已能支持候选原因,由DBA或系统负责人评审下一步;涉及实际执行、加索引、更新统计信息、改参数或SQL发布时,必须单独审批和回滚。

慢查询首轮复核五步

  1. 01

    01

    固定窗口

    记录时区、业务现象、影响对象和近期变更。

  2. 02

    02

    脱敏聚合

    使用SQL指纹和慢日志摘要,避免复制客户敏感条件。

  3. 03

    03

    查看计划

    优先使用EXPLAIN;EXPLAIN ANALYZE需评估实际执行风险。

  4. 04

    04

    交叉核对

    对照索引、统计信息、锁、连接、CPU/IO和数据量。

  5. 05

    05

    人工决定

    证据不足则补采;证据支持时再提交变更评审。

本流程不自动执行SQL、改索引、更新统计信息、改参数或发布代码。

03可执行交付物

两步只读路径:先目录,再指纹摘要

两张权威 SQL 卡均在全新 MySQL 8.0.46 与 8.4.10 容器通过隔离合成样例;生产与客户环境仍需单独授权和回读。

第一步 `SQL-MY-02` 只读取一个明确 schema 的表与索引目录,最多 200 行;第二步 `SQL-MY-03` 只读取 performance_schema digest 摘要,固定最近 24 小时和 Top 50。执行前由数据库负责人确认 schema、最小只读权限和 10 秒客户端超时。

`performance_schema` 关闭时,摘要卡返回 `performance_schema_disabled`;权限不足时数据库拒绝;目标 schema 没有窗口内样本时返回空结果。这三种情况不能互相替代,也不能把空结果写成“没有慢查询”。

结果如何分流
看到什么今天可以做不得直接做
空结果或功能关闭确认采集条件、权限、时间窗与消费者状态,记录证据缺口不得擅自开启日志、消费者或修改实例参数
少量高耗时 digest对照调用次数、扫描行数、业务窗口、索引目录和近期变更不得仅凭排序直接加索引或改 SQL
多个范围同时异常由负责人确认优先级;需要固定范围复核时进入数据库健康体检不得上传客户 SQL、连接串、表名或生产日志到公开入口
04可用交付物

下载 SQL 卡和合成结果样例

SQL 文件是 inchTraining 权威版本的公开副本;合成 CSV 只用于理解字段,不含客户或生产数据。没有采集条件时应标记“缺失”或“需授权”,不要用推测补齐。需要人工风险分级和整改 Top 5 时,再进入 B-HC 固定范围服务。

本节判断

  • 只收集 digest、聚合指标和受控证据引用,不读取完整 SQL 文本。
  • EXPLAIN ANALYZE会实际执行语句,不属于默认只读采集步骤。
  • B-HC不包含自动调优、生产改库或效果承诺。

常见问题

摘要卡会不会输出完整 SQL、库名或表名?

不会。SQL-MY-03不读取DIGEST_TEXT,schema只输出固定盐SHA-256,结果只包含digest与聚合指标。数据库负责人仍需把下载脚本视为R2只读卡,在授权范围内执行。

performance_schema关闭或没有样本时怎么办?

关闭时返回performance_schema_disabled;目标schema在24小时窗口内没有匹配摘要时返回空结果;权限不足则数据库拒绝。这些状态只能说明当前采集条件,不足以排除慢查询。

看到慢SQL后是否应该先加索引?

不应默认这样做。先核对业务窗口、执行计划、现有索引、表规模、统计信息、写入成本和近期变更,再由负责人决定是否进入变更评审。

EXPLAIN和EXPLAIN ANALYZE有什么执行边界?

EXPLAIN用于查看优化器计划;MySQL 8.4官方文档明确说明EXPLAIN ANALYZE会运行语句并返回实际时间和行数,因此生产使用前必须评估权限、负载和语句副作用。

为什么慢查询日志里没有记录也不能直接排除问题?

慢日志可能未启用,阈值、最小扫描行数或输出位置也可能不同;日志顺序与锁等待边界还会影响解释。应记录采集配置和时间窗。

下一步

推荐动作

如果只读摘要仍无法完成风险分级,可进入固定范围人工复核;不自动调优、不执行生产变更,也不承诺必然提速。