MySQL技术文章
-
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 收藏 -
MySQL 字符串列完整建索引过宽时,可以用前缀索引缩小索引体积,但长度不能凭感觉填写。本文用区分度查询选择候选长度,再结合字符集、字节上限、SHOW INDEX、EXPLAIN 和 ORDER BY 边界完成验证。305 收藏 -
从 MySQL 的 LATEST DETECTED DEADLOCK 中区分两条事务已持有的锁和正在等待的锁,再结合表名、索引名与 SQL 访问路径还原相反加锁顺序,并给出修复后的验证方法。161 收藏 -
MySQL 备份恢复不能只看备份文件是否存在,还要保存并复核二进制日志文件、起始位置和停止位置。本文给出一套不依赖猜测的检查方法。216 收藏 -
MySQL LOAD DATA 导入 CSV 时,FIELDS TERMINATED BY、ENCLOSED BY、ESCAPED BY 和 LINES TERMINATED BY 必须匹配文件生成规则。本文用带逗号、双引号和字段内换行的示例说明参数组合与检查方法。335 收藏 -
MySQL utf8mb4 排序规则报错时,先区分 1273 未知排序规则与 1267 排序规则混用,再检查连接会话、列定义和查询表达式,选择兼容的最小修复范围。101 收藏 -
用 RANGE COLUMNS 按月份组织 MySQL 分区表,先核对分区边界,再安全删除越过保留线的历史分区,并处理 MAXVALUE 分区的滚动维护。327 收藏 -
MySQL 队列使用 SKIP LOCKED 时,另一个事务未提交的任务可能暂时不出现在结果集。本文解释锁定读语义,并给出短事务、租约和补偿方案。209 收藏