MySQL技术文章
-
用 MySQL WITH RECURSIVE 查询组织结构树,掌握锚点、递归连接、路径类型、停止条件和深度保护。164 收藏 -
MySQL JSON_STORAGE_SIZE 统计的是解析后的二进制 JSON 表示,不是 JSON 文本字符数或字节数。本文用对比查询和部分更新示例说明三种长度的差异,并给出 JSON_STORAGE_FREE 的排查方法。164 收藏 -
MySQL 直方图适合补充低基数列的分布信息,尤其是没有合适索引、但过滤值明显不均匀的查询。本文从 UPDATE HISTOGRAM、采样率、bucket 数量、AUTO UPDATE 和 EXPLAIN 判断五个方面说明如何配置及其边界。163 收藏 -
MySQL LOCK INSTANCE FOR BACKUP 适合把在线备份的关键阶段包在一个受控窗口中:DML 可以继续,但文件创建、重命名、删除以及部分会改变实例状态的操作会被阻塞。本文说明权限、等待时间、专用会话、释放责任和常见边界。163 收藏 -
用 MySQL JSON_TABLE 把 JSON 数值与日期映射到关系表列时,重点处理 DECIMAL 截断、缺失字段和对象数组转换错误。本文给出原创 SQL 示例、SHOW WARNINGS 检查方式和上线前清单。162 收藏 -
从迁移后才暴露的视图错误入手,按时间线、CHECK TABLE、SHOW CREATE VIEW 和底层表结构逐层定位失效依赖,再做反向确认。161 收藏 -
MySQL DENSE_RANK 可让同一分组内的同分记录共享名次,并让后续排名连续。本文用派生表处理前 N 名筛选,说明 PARTITION BY、ORDER BY 以及 DENSE_RANK、RANK、ROW_NUMBER 的边界。161 收藏 -
MySQL 批量写入没有通用的最佳事务行数。本文用固定数据集对比 100 到 10000 行事务,采集吞吐、批次与提交延迟、redo 增量,并注入失败测量回滚时间,最终按业务门槛选出兼顾吞吐与恢复成本的最小事务。160 收藏 -
MySQL 的 DECLARE CONTINUE HANDLER FOR NOT FOUND 常用于游标读完和 SELECT ... INTO 无结果的场景。本文从 SQLSTATE 02 类、声明顺序和 done 标记入手,演示如何结束游标循环,并用嵌套 BEGIN ... END 隔离容易误触发的 NOT FOUND 条件。160 收藏 -
MySQL 事件调度器适合执行清理、汇总等周期任务,但安全性不只取决于 EVERY 语句。本文用一个分批清理示例,说明 event_scheduler、EVENT 权限、DEFINER、批量上限、审计记录、INFORMATION_SCHEMA.EVENTS 和副本禁用边界。159 收藏 -
MySQL PS_THREAD_ID 接收连接编号,返回 Performance Schema 的线程编号。本文给出只读映射与关联查询,并说明 NULL、连接结束和事件未采集时的判断方法。159 收藏 -
MySQL 排序规则变化后出现等值结果不同、排序顺序变化或索引计划异常时,按列定义、连接会话、EXPLAIN 和 WEIGHT_STRING() 逐层定位,并给出保留列属性的统一迁移方案。158 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏 -
MySQL 触发器中,OLD 始终只读,NEW 只有在 BEFORE 阶段才能赋值。本文用 INSERT、UPDATE、DELETE 和审计示例说明引用边界,解释 AFTER 中修改 NEW 为什么无效。155 收藏 -
MySQL JSON 字段建立生成列索引后仍可能不命中,关键在于查询表达式与生成列定义是否一致、结果类型是否一致,以及 JSON 字符串是否使用 JSON_UNQUOTE。本文用 EXPLAIN、possible_keys 和 key 给出排查顺序。155 收藏