-
MySQL 的 DECLARE CONTINUE HANDLER FOR NOT FOUND 常用于游标读完和 SELECT ... INTO 无结果的场景。本文从 SQLSTATE 02 类、声明顺序和 done 标记入手,演示如何结束游标循环,并用嵌套 BEGIN ... END 隔离容易误触发的 NOT FOUND 条件。
-
MySQL 事件调度器适合执行清理、汇总等周期任务,但安全性不只取决于 EVERY 语句。本文用一个分批清理示例,说明 event_scheduler、EVENT 权限、DEFINER、批量上限、审计记录、INFORMATION_SCHEMA.EVENTS 和副本禁用边界。
-
MySQL PS_THREAD_ID 接收连接编号,返回 Performance Schema 的线程编号。本文给出只读映射与关联查询,并说明 NULL、连接结束和事件未采集时的判断方法。
-
MySQL 排序规则变化后出现等值结果不同、排序顺序变化或索引计划异常时,按列定义、连接会话、EXPLAIN 和 WEIGHT_STRING() 逐层定位,并给出保留列属性的统一迁移方案。
-
MySQL REGEXP_LIKE 匹配结果不稳定时,先拆开字符集、排序规则、大小写和反斜杠四个边界。本文给出一套可复现的排查 SQL、修复写法与验收清单。
-
MySQL ST_AsGeoJSON 会把空间对象转换成 GeoJSON;本文用 POINT 和空间列说明 max_dec_digits 如何控制坐标小数位、options 如何控制 bbox 与 CRS,并解释 SRID 0 和 SRID 4326 下坐标含义的排查方法。
-
MySQL Invisible Index 不需要先删索引就能做灰度验证。本文从索引状态、默认优化计划、会话级 use_invisible_indexes 和性能证据四个方面说明配置、对照与回滚方法。
-
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。
-
MySQL 触发器中,OLD 始终只读,NEW 只有在 BEFORE 阶段才能赋值。本文用 INSERT、UPDATE、DELETE 和审计示例说明引用边界,解释 AFTER 中修改 NEW 为什么无效。
-
MySQL JSON 字段建立生成列索引后仍可能不命中,关键在于查询表达式与生成列定义是否一致、结果类型是否一致,以及 JSON 字符串是否使用 JSON_UNQUOTE。本文用 EXPLAIN、possible_keys 和 key 给出排查顺序。
-
MySQL Version Tokens 的当前服务器令牌可用 SELECT version_tokens_show() 查询。本文从插件状态、权限、返回格式和常见排查路径说明如何安全读取。
-
MySQL 分区表是否能真正提速,关键不只是分区数量,而是分区键、边界和 WHERE 条件能否让优化器排除无关分区。本文用日期范围表说明裁剪条件的设计方法、常见反例和迁移清单。
-
MySQL 8.x 可通过 innodb_redo_log_capacity 在线调整 redo 总容量。本文说明如何按高峰写入速率估算容量,区分配置值、已生效容量与物理占用,并用 resize、LSN 和逻辑大小状态判断调整是否完成。
-
用 GTID 集合、复制线程和写保护检查 MySQL 主从切换条件,说明候选副本提升、旧主库回挂以及新写入后的安全回退边界。
-
批量 INSERT 成功后,mysql_affected_rows() 只能给出影响行数,mysql_info() 还能返回 Records、Duplicates、Warnings 等细节。本文用 MySQL 8.4 C API 示例说明两者如何配合,以及 CLIENT_FOUND_ROWS 什么时候会改变判断。