-
Redis ZMPOP 的 COUNT 参数控制一次弹出的成员数量,默认只取一个,实际数量不会超过集合剩余成员数。本文结合 MIN、MAX、多键和空集合结果说明命令边界,并对比 ZPOPMIN 与 BZMPOP 的适用场景。
-
Redis HSETNX 适合多实例按字段补齐默认配置。本文说明字段存在性、0与1的返回含义,与HSET、SET NX的选择差异,并界定超时、过期及后续修改带来的边界。
-
遇到 MySQL 锁等待超时,先区分 InnoDB 行锁、死锁和元数据锁,再用 sys.innodb_lock_waits 找到等待事务与阻塞事务。本文给出从连接 ID、事务年龄、锁定对象到处理动作的完整排查路径,并说明 ERROR 1205 只回滚当前语句时的边界。
-
MySQL STR_TO_DATE 适合解析日期和时间主体,但不要把 +08:00 直接当作 %z。本文用一个带数字时区偏移的字符串,演示如何拆分、解析、用 CONVERT_TZ 转成 UTC,并根据业务需要选择 DATETIME 或 TIMESTAMP。
-
MySQL INET6_ATON 会把合法的 IPv4 或 IPv6 文本转换为二进制值,IPv4 通常是 4 字节、IPv6 是 16 字节;无效地址或 NULL 输入会得到 NULL。本文用可直接改写的 SQL 说明输入边界、结果检查、VARBINARY 存储和 INET6_NTOA 反向展示。
-
MySQL JSON_SCHEMA_VALID 用 JSON Schema 检查文档结构和值域,本文演示 1、0、NULL、错误和 CHECK 约束的区别。
-
容器不会单独改变 ORDER BY 的语义,真正决定字符串比较和排序的是字符集与 collation。本文先核对 MySQL 容器的实际版本,再定位排序规则来源,用 COLLATE 显式控制结果,并处理混合排序规则和分页不稳定问题。
-
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 条件中的常见误用。