MySQL技术文章
-
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 JSON_TABLE 可以把 JSON 文档投影成关系表。本文用订单、商品和选项的嵌套数组说明根路径、NESTED PATH、FOR ORDINALITY,以及缺失字段和类型转换的处理边界。296 收藏 -
MySQL 隐形索引不等于停用索引:唯一性仍会维护,主键和隐式主键有额外限制。本文结合复合索引列顺序、表达式一致性、回表与 EXPLAIN 给出灰度检查方法。416 收藏 -
MySQL 函数索引不生效,先对照索引表达式与 WHERE 谓词,再检查复合索引列顺序、覆盖列、回表和 EXPLAIN 计划。118 收藏 -
MySQL 组合索引不是把高选择性列简单排在最前面,而要先看等值条件、范围条件和排序的连续性。本文用列表查询说明索引列顺序、函数表达式、filesort 与回表如何一起判断。385 收藏