MySQL技术文章
-
MySQL JSON 列不能直接建立普通索引时,可用生成列提取稳定标量再建索引,并通过 EXPLAIN 排查路径、类型和命中问题。172 收藏 -
用 MySQL 的 SUM OVER 按客户分组计算订单累计金额,保留每条明细行,并说明稳定排序、窗口帧以及最终结果排序之间的区别。172 收藏 -
MySQL InnoDB 出现锁等待时,可先查询 sys.innodb_lock_waits,再结合 INNODB_TRX、data_locks 和 data_lock_waits 定位等待事务、阻塞事务及锁资源;阻塞 SQL 为空时继续从 Performance Schema 会话历史追溯。171 收藏 -
批量处理订单时,不必因为一条异常记录回滚整批事务。本文用 MySQL SAVEPOINT 设计局部回滚边界,配合错误记录、有限重试和最终提交检查,给出可复现的 SQL 与上线排查清单。170 收藏 -
MySQL JSON_VALUE 对缺少路径和 JSON null 都可能返回 SQL NULL。本文用 JSON_CONTAINS_PATH、JSON_TYPE 和 ON EMPTY 哨兵值区分路径缺失、JSON null、空字符串与 SQL NULL 文档。170 收藏 -
MySQL 批量导入遇到 CHECK 约束不应只看导入是否结束。本文用 LOAD DATA IGNORE 保留合法行,说明如何紧接着读取 SHOW COUNT(*) WARNINGS 与 SHOW WARNINGS,并把违规信息交给审计流程。170 收藏 -
本文从连接、字段和转换三个层面说明 MySQL 会话时区如何统一,比较 TIMESTAMP 与 DATETIME 的语义,并给出 SET time_zone、CONVERT_TZ() 和连接池检查点的落地方法。170 收藏 -
MySQL JSON_TABLE 使用 NESTED PATH 展开 JSON 数组时,子路径没有匹配不会直接丢掉父行,而是生成 NULL 补行。本文用原创 SQL 示例说明父行保留、FOR ORDINALITY 追踪和 WHERE 过滤的区别。170 收藏 -
MySQL 的 REGEXP_LIKE 匹配中文时,结果可能受到表达式、模式、列定义和连接排序规则影响。本文给出 utf8mb4 显式配置、分层排查 SQL 与回归样例。169 收藏 -
用 MySQL EXPLAIN ANALYZE 拆解查询的迭代器耗时,结合 rows、actual time 和 loops 判断估算偏差、扫描放大与连接瓶颈,并给出安全的复测方法。169 收藏 -
MySQL 分区裁剪失效,常见原因不是分区本身无效,而是 WHERE 条件没有暴露可识别的分区表达式。本文从函数包裹、隐式转换和 OR 条件三个边界出发,给出按分区键改写查询的方法,并说明 EXPLAIN PARTITIONS 能确认什么。169 收藏 -
MySQL 按业务时区统计日期时,不能先对 UTC 时间取 DATE 再转换。本文用 CONVERT_TZ 处理跨午夜记录,并说明半开区间、命名时区表和 NULL 排查方法。168 收藏 -
数据库 · MySQL | 2个月前 | MySQL · 数据类型 · JSON · MySQL MEMBER OF MySQL JSON 数组成员判断 MEMBER OF 类型不匹配 JSON 数字字符串区别 MySQL JSON 查询
MySQL MEMBER OF 判断 JSON 数组成员时,数字、字符串和 JSON 对象不是同一种值。本文用最小样例说明类型不匹配的原因,并给出按数据域修正查询值、处理 NULL 与核对结果的办法。167 收藏 -
从 SHOW ENGINE INNODB STATUS、innodb_print_all_deadlocks 和 Performance Schema 的锁表与历史语句中,定位 MySQL 事务死锁对应的具体 SQL。167 收藏 -
MySQL EXPLAIN FORMAT=JSON 的嵌套循环成本要结合 nested_loop、rows_examined_per_scan、rows_produced_per_join 和 cost_info.prefix_cost 阅读。本文用一条 JOIN 示例说明如何找出成本被放大的连接分支,并区分优化器估算与实际耗时。166 收藏