MySQL技术文章
-
MySQL FROM_BASE64 会忽略换行、回车、制表符和普通空格,但返回值仍是二进制字符串。本文说明何时可以直接解码、何时需要规范化输入,以及 NULL、非法字符和 URL-safe Base64 的处理边界。369 收藏 -
MySQL MAKE_SET 按位掩码与标签位置生成逗号字符串。通过通知渠道示例说明查询写法、零值与缺失值、NULL占位和未知位处理,避免调整参数顺序改变历史数据含义。281 收藏 -
MySQL EXPORT_SET 可以按低位到高位展开整数位掩码,但一次调用只能共用一组 on/off 文本。本文用按位与拆出单个位,再组合成缓存、审计、通知等不同标签,并说明分隔符、位数和边界值。400 收藏 -
说明 MySQL JSON_DEPTH 对标量、空容器以及对象和数组混合结构的嵌套层数计算方式,并区分最深路径、NULL 与非法 JSON。393 收藏 -
MySQL JSON_STORAGE_SIZE 统计的是解析后的二进制 JSON 表示,不是 JSON 文本字符数或字节数。本文用对比查询和部分更新示例说明三种长度的差异,并给出 JSON_STORAGE_FREE 的排查方法。164 收藏 -
MySQL SET_VAR hint 可以把 sort_buffer_size 等会话变量临时绑定到一条语句。本文用排序查询说明正确写法、语句级作用范围、EXPLAIN 与 SHOW WARNINGS 排查方法,以及变量不可设置和子查询忽略等边界。257 收藏 -
utf8mb4_0900_ai_ci 会把重音和大小写差异降到同一比较层级。本文用可复现 SQL 说明比较、索引、唯一约束与正则边界,并给出切换排序规则的判断方法。369 收藏 -
MySQL gap lock 保护索引间隙,锁定范围不一定等于 WHERE 条件范围。本文用 MySQL 8.4 InnoDB 双会话示例解释范围外插入等待,并给出锁依赖查询、释放方式及隔离级别调整的注意事项。191 收藏 -
从事务快照建立时机入手,解释 MySQL 默认 REPEATABLE READ 下普通 SELECT 为什么看不到其他会话刚提交的数据,并给出提交事务、READ COMMITTED 与锁定读的选择边界。499 收藏 -
MySQL JSON_UNQUOTE 用来去掉 JSON 字符串值的外层引号,并按 JSON 规则处理转义字符。本文从 JSON_EXTRACT 与 ->> 的差异切入,说明数组、对象、NULL、无效字符串和 NO_BACKSLASH_ESCAPES 的边界,帮助你把 JSON 标量安全交给 SQL 或应用层。209 收藏 -
MySQL 直方图把列值分布补充给优化器,帮助它更准确估算 WHERE 条件的选择率。本文说明如何生成、查看和维护直方图,并用 EXPLAIN 判断它是否改善了计划选择。400 收藏 -
MySQL 可用 REGEXP_REPLACE 将连续普通空格压缩为一个。本文以临时表构建清理示例,区分首尾空格、制表符、换行和 NULL,给出预览、事务试写、回滚及业务字段集成的注意事项。308 收藏 -
MySQL 的 derived_merge 默认允许优化器把派生表合并进外层查询块。本文说明怎样只在当前会话临时关闭它、如何查看与恢复设置,以及为什么 EXPLAIN 计划有时仍不会改变。423 收藏 -
MySQL FOR SHARE 是 InnoDB 的锁定读语法:读取符合条件的行并加共享锁,适合在同一事务中先检查再处理。本文对比普通一致性读,说明事务边界、等待行为、NOWAIT、SKIP LOCKED 和常见误区。389 收藏 -
MySQL DENSE_RANK 可让同一分组内的同分记录共享名次,并让后续排名连续。本文用派生表处理前 N 名筛选,说明 PARTITION BY、ORDER BY 以及 DENSE_RANK、RANK、ROW_NUMBER 的边界。161 收藏