MySQL技术文章
-
MySQL 的 NULL 不是普通空值,WHERE 条件还会产生 UNKNOWN。本文用订单查询拆开三值逻辑、IS NULL 判断和索引执行计划的边界。234 收藏 -
MySQL JSON_LENGTH 对数组返回元素数,对对象返回成员数,对标量返回 1;本文进一步说明路径参数、嵌套结构、NULL 和无匹配路径的处理方式。234 收藏 -
MySQL CHECKSUM TABLE 可以同时返回两张表的数据摘要,用于备份前后、迁移后或同实例副本的快速差异筛查。本文说明 QUICK 与 EXTENDED 的适用边界、摘要相同与不同的正确解读,以及视图、版本和存储引擎带来的误区。233 收藏 -
MySQL 的 COUNT(DISTINCT) 只统计非 NULL 唯一值。本文用订单示例区分已知客户数、缺失行数和包含 NULL 桶的唯一值数量,并给出分组统计与子查询写法。232 收藏 -
MySQL 的 utf8mb4 只决定字符如何编码,大小写是否视为相等由排序规则 collation 决定。本文用 _ci、_cs、_bin、_ai、_as 后缀拆解选择逻辑,再说明默认规则、列级定义、查询级 COLLATE、唯一索引和 PAD 属性的边界。232 收藏 -
MySQL 窗口函数重复写分区和排序时,可以用 WINDOW 子句定义命名窗口并在多个 OVER 中复用。本文说明完整复用、追加排序与窗口帧的写法,以及同类属性冲突和最终展示排序的边界。232 收藏 -
MySQL JSON_TABLE 用 NESTED PATH 展开 JSON 数组时,没有子项的外层对象不会自动消失,而是保留一行并把嵌套列补成 NULL。本文用订单和明细示例说明外连接语义、WHERE 过滤边界以及兄弟嵌套路径的行数规则。231 收藏 -
MySQL JSON 列只改一个路径时,使用 JSON_SET、JSON_REPLACE 或 JSON_REMOVE 让更新尽量保留原地部分更新条件,并用 JSON_STORAGE_FREE 和 PARTIAL_JSON 识别存储与复制日志边界。231 收藏 -
MySQL 生产表在线加索引时,真正需要盯住的是 DDL 算法、元数据锁和回滚条件。本文用一套可执行的检查流程,说明如何先判断可用算法,再观察阻塞与进度,最后用低风险方式完成变更。230 收藏 -
MySQL JSON_SCHEMA_VALID() 只能返回 0 或 1。本文用 JSON_SCHEMA_VALIDATION_REPORT() 读取失败原因、JSON Pointer 路径和失败关键字,区分 required 与 type 错误,并给出可接入审计流程的 SQL 写法。230 收藏 -
MySQL 按分组取前几条记录时,可在派生表中用 ROW_NUMBER() 为每组排序编号,再由外层过滤 rn。本文说明稳定排序、并列名次、索引和边界测试。230 收藏 -
用 MySQL 窗口函数在指定时间范围内取每组最近的完整记录:先用半开区间过滤候选集,再用 ROW_NUMBER 稳定排名;同时说明 RANGE 与 ROWS 的时间窗口边界。230 收藏 -
围绕一条真实列表查询,拆分过滤、排序和返回字段,给出 MySQL 复合覆盖索引的布局方法、EXPLAIN 检查项,以及范围条件和写入成本的上线边界。228 收藏 -
讲清 MySQL 函数索引与生成列索引的选择、JSON 表达式类型边界,以及用 EXPLAIN 检查表达式结果是否真正匹配。228 收藏 -
MySQL DDL 出现 Waiting for table metadata lock 时,可用 sys.schema_table_lock_waits 与 performance_schema.metadata_locks 找到等待和阻塞会话,再核对事务后安全处理。228 收藏