MySQL技术文章
-
MySQL 窗口函数的执行计划要从 EXPLAIN FORMAT=JSON 的 windowing 节点读起。本文用累计金额示例核对分区、排序和 frame,并解释 using_filesort、临时表与缓冲字段的排查边界。130 收藏 -
数据库 · MySQL | 3天前 | MySQL · JSON · 数据校验 · JSON_SCHEMA_VALID CHECK 约束 MySQL JSON Schema JSON 结构校验 JSON_SCHEMA_VALIDATION_REPORT
用 MySQL 的 JSON_SCHEMA_VALID() 先判断 JSON 文档是否符合对象结构,再用 JSON_SCHEMA_VALIDATION_REPORT() 定位 required、类型和范围错误,并说明 NULL、非法 JSON、$ref 以及 CHECK 约束中的处理边界。293 收藏 -
MySQL 直方图用列值分布辅助选择性估算,不等于索引。通过累积频率算例和 SQL,解释 ANALYZE TABLE、采样、rows 与 filtered,以及统计更新的适用边界。122 收藏 -
MySQL CTE 默认可能被合并进外层查询。需要固定中间结果处理方式时,可在顶层 SELECT 中使用 NO_MERGE(cte_name) 禁止合并,或使用 MERGE(cte_name) 表达合并意图,再用 EXPLAIN 检查计划变化。208 收藏 -
MySQL REGEXP_REPLACE 默认会替换所有匹配项;通过 pos 指定搜索起点、occurrence 指定匹配序号、match_type 指定匹配规则,可以只修改目标位置。本文用可复用 SQL 说明参数组合和常见边界。426 收藏 -
MySQL JSON_TABLE 不能直接把未知对象键名当成固定列读取。本文用 JSON_KEYS 取得键数组,再用 JSON_TABLE 展开 key/value 行,并说明 JSON_EXTRACT、JSON null、嵌套对象和性能边界。368 收藏 -
介绍 MySQL InnoDB 中用 CAST(... AS ... ARRAY) 为 JSON 数组建立 multi-valued index 的写法,说明 MEMBER OF、JSON_CONTAINS、JSON_OVERLAPS 的适用条件,以及空数组、排序、覆盖索引和在线创建等边界。139 收藏 -
JSON_SET 只是 MySQL JSON partial update 的候选入口;同列读写、已有路径、替换值空间和 JSON 列类型任一条件不满足,都可能退回完整更新。本文还区分 JSON_STORAGE_FREE 与 row-based binlog 的 PARTIAL_JSON。192 收藏 -
MySQL 命名窗口在同一查询块内复用分区、排序与帧规则,不是跨独立查询的持久对象。通过完整样本说明 WINDOW、OVER、窗口扩展及多报表共享口径的边界。226 收藏 -
MySQL JSON_MERGE_PATCH 按 RFC 7396 合并 JSON 对象。要删除目标对象中的成员,应在第二个 JSON 对象中把同名键设为 JSON null;对象递归合并,非 null 值会替换旧值。287 收藏 -
从并列排序值、默认 frame 和显式边界入手,说明 MySQL window frame 中 ROWS 与 RANGE 的区别,并给出逐笔累计、按日期累计和范围统计的选择方法。308 收藏 -
MySQL 用 ROW_NUMBER 取每组最新记录时,关键不是只写一个倒序,而是先用 PARTITION BY 划分分组,再用稳定的 ORDER BY 排名,最后在外层筛选 rn=1。本文还说明并列时间戳、过滤条件和 RANK 选择等边界。123 收藏 -
MySQL invisible unique index 只改变默认优化器是否纳入索引,不会停止索引维护或关闭唯一约束。本文用重复写入、EXPLAIN、IS_VISIBLE 和隐式主键例外说明不可见索引的真实边界。335 收藏 -
MySQL 8.4 可用 SET_VAR 临时启用不可见索引候选,无需改变索引可见性。本文说明单语句写法、会话原值恢复、连接池风险,以及允许候选不等于强制选中。345 收藏 -
MySQL generated column 索引不是按数学等价判断的。本文用 f1 + 1、操作数顺序、结果类型和 JSON_UNQUOTE 说明匹配失败的原因,并给出 EXPLAIN 排查方法。304 收藏