MySQL技术文章
-
MySQL 8.4 可用 SET_VAR 临时启用不可见索引候选,无需改变索引可见性。本文说明单语句写法、会话原值恢复、连接池风险,以及允许候选不等于强制选中。345 收藏 -
MySQL 一次性 EVENT 默认会在到期后清理,显式写 ON COMPLETION NOT PRESERVE 可以把这个意图固定下来。本文从 Event Scheduler 前置条件、AT 时间点、自动删除语义和排查方式说明如何创建一次性定时任务,并给出失败记录与保留对象的取舍。345 收藏 -
MySQL JSON 字段不能直接建立普通索引时,可以用生成列提取需要查询的标量值,再在生成列上建立二级索引。本文用字符串和数值两个例子说明 JSON_UNQUOTE、CAST、VIRTUAL、STORED、表达式匹配和常见边界。345 收藏 -
把连接字符集改成 utf8mb4 不会自动改变表和索引,但列字符集迁移可能让索引前缀的字节数重新触及 InnoDB 上限。本文给出区分连接设置、核算前缀和安全迁移的检查方法。344 收藏 -
在 MySQL recipient 上用 clone_progress 查看克隆阶段、状态和时间字段,并通过相邻时间差计算各阶段耗时;同时说明 donor 侧为何要改用 stage events。344 收藏 -
MySQL 的 UPDATE 和 DELETE 也可以先用 EXPLAIN 观察读取路径。本文从 type、key、rows、filtered 和 JSON 计划入手,说明怎样识别全表扫描、估算偏差与写入前的范围风险。343 收藏 -
澄清多表UPDATE目标行只更新一次的规则,给出按完整业务键聚合和确定性选择最新记录的SQL,区分来源冲突、任务重试与并发封批问题。342 收藏 -
MySQL 直方图适合修正倾斜列的选择性估算。本文从基线、建直方图、检查采样、对比 EXPLAIN 到刷新和回滚,给出一套可操作的排查手册。341 收藏 -
MySQL JSON_OVERLAPS 用于判断两个 JSON 是否共享数组元素、完整对象键值对或相等标量。本文通过数组、对象、NULL 和类型差异案例说明返回 1、0、NULL 的边界,并对照 JSON_CONTAINS 的 AND 语义。341 收藏 -
用 MySQL LOAD DATA 导入 CSV 时出现列错位,通常不是表结构突然变化,而是字段分隔符、引号规则或 Windows 行尾与实际文件不一致。本文用可复现的订单导入例子定位并修正。339 收藏 -
从 INSTANT、INPLACE、COPY 和 LOCK 四个维度,判断 MySQL ALTER TABLE 是否会重建数据,并给出克隆表试跑和上线检查清单。339 收藏 -
MySQL 的 ST_GeomFromText 用 WKT 文本创建空间对象,第二个参数可以指定 SRID。本文从 POINT、LINESTRING、POLYGON 的写法讲到空间列入库,再用 ST_AsText 和 ST_SRID 回读,重点说明 WKT 与 POINT() 函数的格式差异。339 收藏 -
MySQL 8.4 用 ROW_NUMBER() 做分页时,排序键不完整会让边界页出现重复或漏行。本文从稳定排序、窗口函数和游标条件三处核对结果,并给出可回归的分页写法。338 收藏 -
MySQL 递归 CTE 不退出或结果越界时,检查递归成员的 WHERE 条件,再用递归深度、执行时间和 LIMIT 做安全保护。338 收藏 -
utf8mb4 排序规则不只是影响 ORDER BY,还会决定字符串比较、查询命中和 UNIQUE 索引是否判重。本文从大小写、重音、尾随空格三个维度,给出 MySQL 8.4 下的选择方法与迁移检查清单。337 收藏