MySQL技术文章
-
从 JSON 路径的返回类型、函数索引表达式和排序规则入手,说明怎样让 MySQL 查询真正匹配 JSON 函数索引,并给出 EXPLAIN 排查与生成列兼容方案。136 收藏 -
MySQL JSON_OVERLAPS 用于判断两个 JSON 文档是否存在共同内容。本文以数组交集为主线,说明它与 JSON_CONTAINS 的区别,并补充对象、标量、NULL、类型边界和多值索引方向。279 收藏 -
用 JSON_VALUE 的 RETURNING 明确结果类型,再分别处理路径缺失和类型转换异常,避免 JSON 标量在查询中被当成普通字符串。404 收藏 -
MySQL 按日期计算累计值时,默认 RANGE 会把同一天的记录视为同一组;需要逐行累计时使用 ROWS,并补充稳定排序键。本文用同一组数据对比 ROWS、RANGE 和日期区间窗口的适用边界。393 收藏 -
MySQL 按分组取前几条记录时,可在派生表中用 ROW_NUMBER() 为每组排序编号,再由外层过滤 rn。本文说明稳定排序、并列名次、索引和边界测试。230 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏 -
用 MySQL Performance Schema 的语句摘要表按总耗时、平均耗时、调用次数和样例 SQL 找到最值得优先处理的慢 SQL,并识别摘要容量不足造成的 NULL 汇总行。150 收藏 -
MySQL GTID 迁移要让备份数据与事务水位对应,不能用补写 GTID 元数据代替恢复。本文用集合比较示例识别缺失事务、已清理历史及额外事务,并解释自动定位与切换放行条件。285 收藏 -
MySQL 连接池耗尽时不要先盲目调大 max_connections。本文从 Threads_connected、Threads_running、SHOW FULL PROCESSLIST 和 performance_schema.threads 入手,区分连接未释放、慢查询锁等待与瞬时并发峰值。369 收藏 -
MySQL 复制延迟排查不能只看 Seconds_Behind_Source。本文用 SHOW REPLICA STATUS 对照 IO 接收线程和 SQL 应用线程,区分网络接收慢、中继日志堆积与应用报错。254 收藏 -
MySQL 分区键不能只看字段是否有索引,还要同时看查询能否触发分区裁剪、数据是否按时间维护,以及主键和唯一键是否包含分区列。本文用 RANGE、COLUMNS、LIST、HASH 和 KEY 对比一个可落地的选择顺序。495 收藏 -
MySQL 在线 DDL 仍可能被元数据锁阻塞。本文用 sys.schema_table_lock_waits 和 performance_schema.metadata_locks 定位持锁事务,并通过 lock_wait_timeout、ALGORITHM 和 LOCK 设定可控的变更失败边界。216 收藏 -
还原 MySQL 死锁等待关系,需要逐项对应事务、持有锁、请求锁和冲突资源,不能只看当前 SQL。本文给出关系表和 Performance Schema 查询,并解释实时快照、间隙锁及重试边界。387 收藏 -
数据库 · MySQL | 4天前 | MySQL · 事务 · InnoDB · Serializable READ COMMITTED REPEATABLE READ MySQL事务隔离级别 一致性读 InnoDB快照
从 InnoDB 快照建立时机入手,比较四种事务隔离级别对一致性读、并发提交和锁定读的影响,并给出两个会话的最小验证模板。317 收藏 -
MySQL JSON_TABLE 单独用普通 PATH 取值时,字段缺失和 JSON null 都可能表现为 NULL;增加 EXISTS PATH 列记录路径是否出现,再结合取值列即可区分三种输入状态。124 收藏