MySQL技术文章
-
用 MySQL JSON_SCHEMA_VALID 配合 CHECK 约束,在 JSON 入库前拒绝缺字段、类型不符和数值越界,并用验证报告定位具体失败位置。446 收藏 -
用 MySQL JSON_TABLE 展开订单 JSON 数组时,通过 DEFAULT ON EMPTY 为缺失字段提供类型正确的默认值,并结合 EXISTS PATH、FOR ORDINALITY 和 ON ERROR 保留可追溯的映射边界。445 收藏 -
开启 ONLY_FULL_GROUP_BY 后,查询中的非聚合列必须出现在 GROUP BY 中,或能由分组列唯一确定。本文用主键、唯一键、单值过滤、ANY_VALUE 和派生表几个场景,说明如何改写查询并保持结果语义明确。440 收藏 -
MySQL 存储过程遇到业务校验失败时,SIGNAL 可以主动抛出可识别错误,RESIGNAL 可以在处理器中保留或补充原始诊断信息。本文用订单额度校验示例说明错误传递、事务回滚和调用方验收的边界。438 收藏 -
递归 CTE 查组织树或日期序列时,结果少一层并不一定是 MySQL 丢数据。本文从锚点、递归成员和终止条件入手,演示如何定位 cte_max_recursion_depth、类型推断与边界条件造成的提前停止。438 收藏 -
MySQL 分组取每组第一条时,先用 ROW_NUMBER 按业务字段排序,再用唯一键补足平手顺序,外层筛选 rn=1。本文用订单状态变更记录说明并列值、NULL、索引与执行计划的核对方法。437 收藏 -
数据库 · MySQL | 1个月前 | MySQL · InnoDB · 备份恢复 · mysqldump · innodb mysqldump 逻辑备份 MySQL 8.4 single-transaction
MySQL 8.4 的 InnoDB 逻辑备份不能只加一个 single-transaction 参数。本文用一致性快照、长事务、DDL 变更和恢复抽检建立可执行的备份验收流程。435 收藏 -
用普通 EXPLAIN 找到 Using filesort 与 Using temporary 线索,再用 EXPLAIN ANALYZE 对照实际行数、耗时和 loops,判断排序临时表是否真的是慢点。434 收藏 -
MySQL 9.7 的 VECTOR 列能保存向量,但原生向量索引和相似度检索仍在官方架构讨论中。本文拆开 InnoDB 二级索引、隐藏子表、事务一致性和当前落地边界,给出应用侧的稳妥接法。432 收藏 -
判断 MySQL 列选择性是否真的变差,不能只看直方图;应结合实际过滤比例、EXPLAIN ANALYZE 的估算与实际行数,以及索引 CARDINALITY 和统计更新时间综合确认。432 收藏 -
MySQL utf8mb4 排序规则不是只影响 ORDER BY,也会改变字符串的相等判断,从而让唯一索引出现新增冲突或放宽边界。本文用 INFORMATION_SCHEMA、COLLATE 对比和迁移前分组检查,说明如何安全判断与处理。431 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 执行计划 · InnoDB · 索引优化 · explain 函数索引 MySQL 8.4 Functional Key Parts 表达式索引
MySQL 8.4 函数索引可以直接为表达式结果建立索引,但表达式写法、数据类型、写入成本和查询计划都要一起验收。本文用订单日期与 JSON 状态筛选两个场景,说明什么时候该建函数索引、什么时候改写查询更稳。429 收藏 -
MySQL 事务回滚后出现自增主键空洞并不代表数据错乱。本文用 INSERT、ROLLBACK 和并发场景说明 AUTO_INCREMENT 的分配边界,并给出业务编号与主键分工、复核和验收方法。429 收藏 -
MySQL 表出现重复审计记录时,不要先删触发器。本文从 SHOW TRIGGERS、SHOW CREATE TRIGGER 和最小写入复现入手,区分多触发器、执行时机、递归写入与连接重试造成的重复。425 收藏 -
讲清 MySQL EXISTS、IN、NOT IN 遇到 NULL 时的三值逻辑差异,并给出 IS NOT NULL 与 NOT EXISTS 的安全写法。425 收藏