-
MySQL JSON_SCHEMA_VALID 用 JSON Schema 检查文档结构和值域,本文演示 1、0、NULL、错误和 CHECK 约束的区别。
-
MySQL 查询偶尔选择 Index Merge 时,可以用 NO_INDEX_MERGE optimizer hint 在单条语句范围内临时关闭索引合并。本文比较 optimizer_switch、无索引参数和指定索引参数的写法,并说明如何用 EXPLAIN 判断提示是否真正改变访问路径。
-
遇到 MySQL 锁等待超时,先区分 InnoDB 行锁、死锁和元数据锁,再用 sys.innodb_lock_waits 找到等待事务与阻塞事务。本文给出从连接 ID、事务年龄、锁定对象到处理动作的完整排查路径,并说明 ERROR 1205 只回滚当前语句时的边界。
-
MySQL Performance Schema 的按线程等待汇总表能把 THREAD_ID、等待事件和累计计时关联起来。本文给出采集项、线程映射、排序定位和清零窗口的最小 SQL,并说明后台线程、计时单位和空结果的排查边界。
-
SHOW CREATE TABLE 面向可复现的建表定义,INFORMATION_SCHEMA 面向可筛选的元数据查询。两者都描述同一张表,却可能在约束归类、字段顺序、隐藏列、行格式和默认值展示上不同。本文用 MySQL 8.4 的实际文档口径说明差异,并给出结构核对时的选择方法。
-
以MySQL 8.4 InnoDB单SKU库存预留为例,对比RC、RR与FOR UPDATE、FOR SHARE的组合,给出事务内扣减与异常回滚示例,并说明权限、连接池及幂等重试边界。
-
EXPLAIN ANALYZE 能定位排序节点并展示实际耗时,但不会直接标记是否落盘。本文结合同一会话的 Created_tmp_disk_tables、Sort_merge_passes 等状态计数,说明如何判断磁盘临时表和排序归并线索。
-
MySQL CHECKSUM TABLE 可以同时返回两张表的数据摘要,用于备份前后、迁移后或同实例副本的快速差异筛查。本文说明 QUICK 与 EXTENDED 的适用边界、摘要相同与不同的正确解读,以及视图、版本和存储引擎带来的误区。
-
MySQL 窗口函数重复写分区和排序时,可以用 WINDOW 子句定义命名窗口并在多个 OVER 中复用。本文说明完整复用、追加排序与窗口帧的写法,以及同类属性冲突和最终展示排序的边界。
-
MySQL INET6_ATON 会把合法的 IPv4 或 IPv6 文本转换为二进制值,IPv4 通常是 4 字节、IPv6 是 16 字节;无效地址或 NULL 输入会得到 NULL。本文用可直接改写的 SQL 说明输入边界、结果检查、VARBINARY 存储和 INET6_NTOA 反向展示。
-
使用 INFORMATION_SCHEMA.INNODB_TRX 可以查看当前仍在 InnoDB 中执行的事务,本文说明如何读取事务状态、开始时间、连接 ID 和修改规模,并区分事务概况与锁关系排查。
-
MySQL JSON_TABLE 在同一 COLUMNS 中使用多个 NESTED PATH 时,会让嵌套路径依次产出记录,并为另一组路径列补 NULL。本文用可复现 SQL 解释行来源、过滤方式与 FOR ORDINALITY 的范围。
-
MySQL START TRANSACTION READ ONLY 限制的是当前事务对永久表的写入。本文用 SQL 和连接池代码说明普通查询、写入、锁定读、临时表以及提交回滚的边界。
-
MySQL 容量盘点不能只看一个总数。本文用 INFORMATION_SCHEMA.TABLES 区分 DATA_LENGTH、INDEX_LENGTH 与 DATA_FREE,给出按库汇总的查询,并解释 InnoDB、分区表和磁盘文件统计之间的边界。
-
MySQL 的 DECLARE CONTINUE HANDLER FOR NOT FOUND 常用于游标读完和 SELECT ... INTO 无结果的场景。本文从 SQLSTATE 02 类、声明顺序和 done 标记入手,演示如何结束游标循环,并用嵌套 BEGIN ... END 隔离容易误触发的 NOT FOUND 条件。