当前位置:首页 >专题 >MySQL 8.4 索引与迁移验收工程实践专题

MySQL 8.4 索引与迁移验收工程实践专题
MySQL 8.4 索引与迁移验收

MySQL 8.4 索引与迁移验收工程实践专题

从 EXPLAIN、不可见索引到 GIPK 的可逆验证与上线验收
MySQL 性能问题和数据库迁移事故,往往不是缺少一个索引或一条 DDL,而是缺少可验证、可回退的变更流程。本专题聚焦 MySQL 8.4 的不可见索引、EXPLAIN 执行计划、生成不可见主键 GIPK、深分页、N+1 与迁移边界,精选官方手册和 17Golang 真实文章,帮助开发者把索引调整和表结构升级做成有证据的工程动作。

官方入口与 MySQL 8.4 能力边界

先核对索引、执行计划与生成主键的官方定义

MySQL 8.4 官方手册首页
外链

MySQL 8.4 官方手册首页

MySQL 8.4 Reference Manual 官方入口,汇总 SQL、优化、InnoDB、复制和运维文档。
MySQL 如何使用索引
外链

MySQL 如何使用索引

官方说明索引查找、最左前缀、排序、覆盖索引和全表扫描边界。
MySQL Invisible Indexes
外链

MySQL Invisible Indexes

官方不可见索引文档,说明可逆验证、optimizer_switch 与 SHOW INDEX 检查。
MySQL EXPLAIN 语句
外链

MySQL EXPLAIN 语句

官方 EXPLAIN 语法与 FORMAT、EXPLAIN ANALYZE、执行计划说明。
Generated Invisible Primary Keys
外链

Generated Invisible Primary Keys

官方 GIPK 文档,说明 sql_generate_invisible_primary_key 对 InnoDB 新表的影响。
MySQL EXPLAIN 输出格式
外链

MySQL EXPLAIN 输出格式

官方解释 key、rows、filtered、type、Extra 等计划字段。
MySQL 8.4 优化与索引章节
外链

MySQL 8.4 优化与索引章节

官方索引优化章节目录,覆盖联合索引、统计信息、不可见索引和排序。
MySQL 8.4 ALTER TABLE 文档
外链

MySQL 8.4 ALTER TABLE 文档

官方 ALTER TABLE 参考,包含索引可见性、主键和 DDL 注意事项。

从慢查询到迁移验收的工程路径

用证据判断 SQL、索引和表结构变更是否真的安全

MySQL 8.4 隐式生成主键怎么排查:sql_generate_invisible_primary_key 与迁移验收
文章

MySQL 8.4 隐式生成主键怎么排查:sql_generate_invisible_primary_key 与迁移验收

围绕 GIPK、my_row_id、复制、CTAS 与 mysqldump 说明 MySQL 8.4 迁移验收边界。
MySQL 明明加了索引,为什么查询还是很慢?先查这 6 个点
文章

MySQL 明明加了索引,为什么查询还是很慢?先查这 6 个点

从联合索引顺序、函数列、隐式转换、回表、排序和统计信息六个方向排查慢查询。
没有主键的 InnoDB 表为何出现 my_row_id:GIPK 复制与备份边界
文章

没有主键的 InnoDB 表为何出现 my_row_id:GIPK 复制与备份边界

从 SHOW CREATE TABLE、SHOW INDEX 和备份复制三个证据面确认隐藏主键。
MySQL 查询为什么不走索引:函数列、隐式转换和范围条件怎么改
文章

MySQL 查询为什么不走索引:函数列、隐式转换和范围条件怎么改

用 EXPLAIN 对比函数列、隐式转换和范围条件改写前后的访问路径。
接口列表页越查越慢怎么办:N+1 查询从 120 次降到 3 次
文章

接口列表页越查越慢怎么办:N+1 查询从 120 次降到 3 次

用订单列表案例识别 N+1,固定 SQL 次数并以压测指标验证批量加载。
MyBatis N+1 查询实战:列表接口 1 秒变 8 秒,别只怪数据库
文章

MyBatis N+1 查询实战:列表接口 1 秒变 8 秒,别只怪数据库

从 SQL 日志、批量查询、分页 count 与子表索引分析 N+1 成本。
MySQL排序优化技巧与性能提升
文章

MySQL排序优化技巧与性能提升

说明 ORDER BY、索引顺序、子查询和临时表对排序性能的影响。

上线前常见问题

把不可逆操作拆成可观测、可回退的变更

不可见索引可以替代直接删除索引吗?

它适合先验证优化器不再使用某索引的影响,但索引仍会维护并占用空间;应结合 EXPLAIN、慢查询、Performance Schema 和业务指标确认后,再决定是否 DROP。

MySQL 8.4 的 GIPK 会给旧表自动补主键吗?

不会。GIPK 主要影响开关打开后新建的、没有显式主键的 InnoDB 表;旧表需要单独设计和执行迁移,不能把隐藏列当作业务 ID。

EXPLAIN 显示用了索引,为什么接口仍然很慢?

还要看 rows、filtered、Extra、回表、排序、锁等待、连接池和 N+1 往返;key 有值只说明选择了索引,不代表扫描范围和整体请求成本已经合理。

GIPK 迁移验收最少要保留哪些证据?

至少保留源库与目标库的变量值、SHOW CREATE TABLE、SHOW INDEX、Information Schema 列属性、复制格式与位置、备份参数和恢复后的结构对比。

微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码