-
MySQL 的 DECLARE CONTINUE HANDLER FOR NOT FOUND 常用于游标读完和 SELECT ... INTO 无结果的场景。本文从 SQLSTATE 02 类、声明顺序和 done 标记入手,演示如何结束游标循环,并用嵌套 BEGIN ... END 隔离容易误触发的 NOT FOUND 条件。
-
MySQL 的 ST_GeomFromText 用 WKT 文本创建空间对象,第二个参数可以指定 SRID。本文从 POINT、LINESTRING、POLYGON 的写法讲到空间列入库,再用 ST_AsText 和 ST_SRID 回读,重点说明 WKT 与 POINT() 函数的格式差异。
-
MySQL WITH ROLLUP 可以在分组明细后一次生成产品小计、国家小计和总计。本文从单列总计讲到多列层级,用 GROUPING() 区分真实 NULL 与汇总 NULL,并说明 WHERE、HAVING、ORDER BY 和 LIMIT 的使用边界。
-
MySQL REGEXP_LIKE 返回 1、0 或 NULL,用于判断字符串是否匹配正则表达式。本文从 LIKE 与正则的区别讲起,说明 match_type 的大小写和换行控制,并整理 NULL、转义、字符集与 WHERE 查询中的排查方法。
-
派生表并不是天然阻止所有下推。本文区分派生条件下推与 Index Condition Pushdown,说明合并、物化、EXPLAIN 判断和适用边界。
-
MySQL 查询偶尔选择 Index Merge 时,可以用 NO_INDEX_MERGE optimizer hint 在单条语句范围内临时关闭索引合并。本文比较 optimizer_switch、无索引参数和指定索引参数的写法,并说明如何用 EXPLAIN 判断提示是否真正改变访问路径。
-
MySQL Performance Schema 的 events_statements_history_long 默认可能未开启。本文说明 setup_consumers 的层级开关、动态启用方式、启动时容量设置、查询最近已结束语句的方法,以及查不到记录时的排查顺序。
-
MySQL JSON_CONTAINS_PATH 用来判断 JSON 文档中的一个或多个路径是否存在。本文用最小 SQL 说明 one 和 all 的区别,并梳理 0、1、NULL、JSON null、非法路径以及 WHERE 条件中的常见误用。
-
MySQL Performance Schema 的 table_io_waits_summary_by_index_usage 出现 INDEX_NAME=NULL 时,不要直接理解为表没有索引。本文解释 NULL、PRIMARY 和具体二级索引的分组差异,说明插入为何计入 NULL,并给出固定观察窗口的查询方法。
-
MySQL GTID_EXECUTED 是事务集合,不是单一整数位点。本文用源端与副本端的 Executed_Gtid_Set、Retrieved_Gtid_Set、GTID_SUBSET 和 GTID_SUBTRACT 判断复制是否推进,并定位仍未应用的事务范围。
-
执行 OPTIMIZE TABLE 后,不能只看命令返回 OK 就判断磁盘空间已回收。本文按存储引擎、表空间归属、执行回执和前后快照,说明如何区分 .ibd 文件缩小、共享表空间内部复用与仅更新统计信息。
-
MySQL START TRANSACTION READ ONLY 限制的是当前事务对永久表的写入。本文用 SQL 和连接池代码说明普通查询、写入、锁定读、临时表以及提交回滚的边界。
-
MySQL 分区表出现读取异常或损坏标记时,应先确认存储引擎和分区范围,再用 CHECK TABLE 或 CHECK PARTITION 读取完整结果,最后结合备份和恢复方案处理。本文说明检查选项、InnoDB 风险与结果边界。
-
从同一物理连接的会话变量出发,分清 MySQL 普通字面量、列排序规则和 COLLATE 优先级,通过对照 SQL 定位大小写比较及混用排序规则异常,并选择正确修复边界。
-
MySQL 8.4 中 ADD COLUMN 默认优先使用 INSTANT,但表属性、组合变更、行大小和生成列仍会改变支持边界。本文给出显式判断、错误分流和上线前检查方法。