MySQL技术文章
-
把连接字符集改成 utf8mb4 不会自动改变表和索引,但列字符集迁移可能让索引前缀的字节数重新触及 InnoDB 上限。本文给出区分连接设置、核算前缀和安全迁移的检查方法。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 8.4 用 ROW_NUMBER() 做分页时,排序键不完整会让边界页出现重复或漏行。本文从稳定排序、窗口函数和游标条件三处核对结果,并给出可回归的分页写法。338 收藏 -
MySQL 递归 CTE 不退出或结果越界时,检查递归成员的 WHERE 条件,再用递归深度、执行时间和 LIMIT 做安全保护。338 收藏 -
utf8mb4 排序规则不只是影响 ORDER BY,还会决定字符串比较、查询命中和 UNIQUE 索引是否判重。本文从大小写、重音、尾随空格三个维度,给出 MySQL 8.4 下的选择方法与迁移检查清单。337 收藏 -
MySQL 多值索引会把 JSON 数组元素拆成多条索引记录,因此能加速成员判断,却不能从索引还原完整数组。本文解释回表原因、EXPLAIN 误区,并给出生成列与关系化拆分方案。336 收藏 -
用最小 SQL 验证 MySQL READ ONLY 事务的真实边界:哪些普通表写入会失败,为什么临时表仍可修改,以及连接池复用时如何确认只读状态没有泄漏。335 收藏 -
MySQL LOAD DATA 导入 CSV 时,FIELDS TERMINATED BY、ENCLOSED BY、ESCAPED BY 和 LINES TERMINATED BY 必须匹配文件生成规则。本文用带逗号、双引号和字段内换行的示例说明参数组合与检查方法。335 收藏 -
用 MySQL JSON_TABLE 和 NESTED PATH 展开嵌套数组,分清 FOR ORDINALITY、ON EMPTY、ON ERROR、EXISTS PATH 以及空数组产生的 NULL 行。335 收藏 -
MySQL 函数索引不命中时,先对照 SHOW CREATE TABLE 中的表达式,再统一 WHERE 的函数、JSON 路径和类型转换,最后用 EXPLAIN 检查 key、key_len 与 rows。335 收藏