MySQL技术文章
-
MySQL 索引条件下推是否生效,不能只看查询用了索引。本文用 EXPLAIN 的 Extra、EXPLAIN ANALYZE 的 TREE 输出和 optimizer_switch,说明如何确认 Using index condition,并排查没有出现它的常见原因。188 收藏 -
MySQL SHOW WARNINGS 读取当前会话最近语句的诊断信息。本文用数据截断和隐式转换场景说明 warning_count、SHOW COUNT(*) WARNINGS、max_error_count、sql_mode 与 sql_notes 的区别,帮助定位警告为何出现或为何列表不完整。188 收藏 -
从 InnoDB 死锁报告中的事务 ID、MySQL thread id、SQL 和锁对象入手,结合 Performance Schema 与应用日志,把死锁日志对应到具体连接和业务事务。185 收藏 -
MySQL LOAD DATA 导入包含换行的字段时,正确配置字段分隔符、引号包裹、转义字符和行结束符,并用警告与抽样查询确认数据没有错行。181 收藏 -
用 MySQL 的 SUM OVER 按客户分组计算订单累计金额,保留每条明细行,并说明稳定排序、窗口帧以及最终结果排序之间的区别。172 收藏 -
MySQL JSON_TABLE 展开嵌套文档时,关键是把根数组、相对 NESTED PATH、缺失子数组和 FOR ORDINALITY 分开处理。本文用一份多层 JSON 说明如何稳定展开并避免行数误判。165 收藏 -
用 MySQL WITH RECURSIVE 查询组织结构树,掌握锚点、递归连接、路径类型、停止条件和深度保护。164 收藏 -
MySQL LOCK INSTANCE FOR BACKUP 适合把在线备份的关键阶段包在一个受控窗口中:DML 可以继续,但文件创建、重命名、删除以及部分会改变实例状态的操作会被阻塞。本文说明权限、等待时间、专用会话、释放责任和常见边界。163 收藏 -
用 MySQL JSON_TABLE 把 JSON 数值与日期映射到关系表列时,重点处理 DECIMAL 截断、缺失字段和对象数组转换错误。本文给出原创 SQL 示例、SHOW WARNINGS 检查方式和上线前清单。162 收藏 -
MySQL DENSE_RANK 可让同一分组内的同分记录共享名次,并让后续排名连续。本文用派生表处理前 N 名筛选,说明 PARTITION BY、ORDER BY 以及 DENSE_RANK、RANK、ROW_NUMBER 的边界。161 收藏 -
MySQL 事件调度器适合执行清理、汇总等周期任务,但安全性不只取决于 EVERY 语句。本文用一个分批清理示例,说明 event_scheduler、EVENT 权限、DEFINER、批量上限、审计记录、INFORMATION_SCHEMA.EVENTS 和副本禁用边界。159 收藏 -
MySQL JSON 字段建立生成列索引后仍可能不命中,关键在于查询表达式与生成列定义是否一致、结果类型是否一致,以及 JSON 字符串是否使用 JSON_UNQUOTE。本文用 EXPLAIN、possible_keys 和 key 给出排查顺序。155 收藏 -
MySQL CTE 可以把复杂筛选或聚合子查询命名后重复引用,本文用订单统计场景说明 WITH 的组织方式、列名与作用域边界,以及合并和物化对执行计划的影响。150 收藏 -
MySQL 分区表出现跨分区扫描时,先检查 WHERE 是否直接约束分区键,再区分 RANGE、RANGE COLUMNS 与 KEY 分区的裁剪边界,最后用 EXPLAIN 的 partitions 字段确认查询范围。146 收藏 -
MySQL 复制延迟应按通道区分接收、协调与工作线程。本文组织只读状态报告,给出错误与事务进度查询、线程关联写法,说明 Seconds_Behind_Source 的限制及分层处理方向。141 收藏