-
MySQL SET_VAR hint 可以把 sort_buffer_size 等会话变量临时绑定到一条语句。本文用排序查询说明正确写法、语句级作用范围、EXPLAIN 与 SHOW WARNINGS 排查方法,以及变量不可设置和子查询忽略等边界。
-
utf8mb4_0900_ai_ci 会把重音和大小写差异降到同一比较层级。本文用可复现 SQL 说明比较、索引、唯一约束与正则边界,并给出切换排序规则的判断方法。
-
MySQL gap lock 保护索引间隙,锁定范围不一定等于 WHERE 条件范围。本文用 MySQL 8.4 InnoDB 双会话示例解释范围外插入等待,并给出锁依赖查询、释放方式及隔离级别调整的注意事项。
-
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。
-
MySQL JSON_UNQUOTE 用来去掉 JSON 字符串值的外层引号,并按 JSON 规则处理转义字符。本文从 JSON_EXTRACT 与 ->> 的差异切入,说明数组、对象、NULL、无效字符串和 NO_BACKSLASH_ESCAPES 的边界,帮助你把 JSON 标量安全交给 SQL 或应用层。
-
MySQL 直方图把列值分布补充给优化器,帮助它更准确估算 WHERE 条件的选择率。本文说明如何生成、查看和维护直方图,并用 EXPLAIN 判断它是否改善了计划选择。
-
MySQL 可用 REGEXP_REPLACE 将连续普通空格压缩为一个。本文以临时表构建清理示例,区分首尾空格、制表符、换行和 NULL,给出预览、事务试写、回滚及业务字段集成的注意事项。
-
MySQL 的 derived_merge 默认允许优化器把派生表合并进外层查询块。本文说明怎样只在当前会话临时关闭它、如何查看与恢复设置,以及为什么 EXPLAIN 计划有时仍不会改变。
-
MySQL FOR SHARE 是 InnoDB 的锁定读语法:读取符合条件的行并加共享锁,适合在同一事务中先检查再处理。本文对比普通一致性读,说明事务边界、等待行为、NOWAIT、SKIP LOCKED 和常见误区。
-
MySQL DENSE_RANK 可让同一分组内的同分记录共享名次,并让后续排名连续。本文用派生表处理前 N 名筛选,说明 PARTITION BY、ORDER BY 以及 DENSE_RANK、RANK、ROW_NUMBER 的边界。
-
MySQL 隐形索引可用于观察查询失去某条索引后的影响,并保留恢复可见性的方式。本文给出 MySQL 8.4 示例,说明负载基线、执行计划、退化信号、恢复命令,以及维护成本、约束和物理删除的区别。
-
MySQL 降序索引不是给 ORDER BY DESC 随手加一个关键字就能生效。本文从 InnoDB 联合索引、WHERE 等值条件、混合 ASC/DESC 排序和 EXPLAIN 判断入手,说明怎样减少 filesort,以及哪些场景仍会反向扫描或无法使用降序索引。
-
MySQL SHOW WARNINGS 读取当前会话最近语句的诊断信息。本文用数据截断和隐式转换场景说明 warning_count、SHOW COUNT(*) WARNINGS、max_error_count、sql_mode 与 sql_notes 的区别,帮助定位警告为何出现或为何列表不完整。
-
本文说明 Redis Streams 中如何先检查消费者和 Pending 消息,再转移或确认遗留消息,最后使用 XGROUP DELCONSUMER 清理不再活跃的消费者记录,并区分它与删除整个消费者组的区别。
-
Redis MEMORY USAGE 返回指定 key、值和管理开销的字节估算;集合型对象还要结合 SAMPLES 与 INFO memory 区分单键占用、实例分配和 RSS。