MySQL技术文章
-
用 mysqldump 的一致性读、备份时点 GTID 和副本状态联合确认 InnoDB 在线备份的快照边界,解释为什么 Seconds_Behind_Source 不能单独证明备份一致。323 收藏 -
MySQL GTID 切换前不要只看延迟或最后编号,本文用 GTID_SUBSET、GTID_SUBTRACT、复制状态和备份检查点建立可执行的事务连续性检查清单。357 收藏 -
MySQL 8.4 InnoDB 修改大表列类型通常只能使用 ALGORITHM=COPY。本文从表副本、锁、磁盘、异步复制和原子 DDL 五个边界说明如何估算变更窗口与回退方案。393 收藏 -
MySQL InnoDB 在线新增二级索引时,ALGORITHM 决定变更实现方式,LOCK 表达并发读写要求。本文用场景、决策表和 SQL 示例说明怎么选,以及哪些情况下应让变更直接失败。393 收藏 -
MySQL 死锁日志中的表名、索引名、锁模式和记录值需要结合事务语句才能还原到 SQL。本文用 SHOW ENGINE INNODB STATUS 与 performance_schema.data_locks 说明如何区分持有锁和等待锁,并从索引记录反推 WHERE 条件与事务顺序。261 收藏 -
MySQL UPDATE 条件看起来只命中少量数据,却出现大范围锁等待时,按执行计划、data_locks、范围锁和事务边界逐层定位,避免盲目改隔离级别。311 收藏 -
MySQL 用 ROW_NUMBER 去重时,先按业务键分组并定义稳定排序,再在外层筛选 rn=1,就能保留每组一条完整原始行。本文给出预览、边界检查和安全清理写法。416 收藏 -
用 MySQL 窗口函数按分组生成稳定行号,再通过 CTE 或派生表筛选组内分页;同时说明 ROW_NUMBER、RANK、DENSE_RANK 的并列差异。395 收藏 -
用 JSON_CONTAINS_PATH、JSON_TYPE、JSON_LENGTH 和 JSON_TABLE 区分 MySQL JSON 路径缺失、JSON null 与空数组,并处理类型转换边界。209 收藏 -
数据库 · MySQL | 1星期前 | MySQL · JSON · SQL 查询 · 数据展开 · mysql JSON_TABLE ON EMPTY ON ERROR JSON 数组 NESTED PATH
MySQL JSON_TABLE 可以把 JSON 文档投影成关系表。本文用订单、商品和选项的嵌套数组说明根路径、NESTED PATH、FOR ORDINALITY,以及缺失字段和类型转换的处理边界。296 收藏 -
MySQL 隐形索引不等于停用索引:唯一性仍会维护,主键和隐式主键有额外限制。本文结合复合索引列顺序、表达式一致性、回表与 EXPLAIN 给出灰度检查方法。416 收藏 -
MySQL 函数索引不生效,先对照索引表达式与 WHERE 谓词,再检查复合索引列顺序、覆盖列、回表和 EXPLAIN 计划。118 收藏 -
MySQL 组合索引不是把高选择性列简单排在最前面,而要先看等值条件、范围条件和排序的连续性。本文用列表查询说明索引列顺序、函数表达式、filesort 与回表如何一起判断。385 收藏 -
MySQL 字符串列完整建索引过宽时,可以用前缀索引缩小索引体积,但长度不能凭感觉填写。本文用区分度查询选择候选长度,再结合字符集、字节上限、SHOW INDEX、EXPLAIN 和 ORDER BY 边界完成验证。305 收藏 -
从 MySQL 的 LATEST DETECTED DEADLOCK 中区分两条事务已持有的锁和正在等待的锁,再结合表名、索引名与 SQL 访问路径还原相反加锁顺序,并给出修复后的验证方法。161 收藏