MySQL技术文章
-
数据库 · MySQL | 1星期前 | MySQL · SQL · 递归查询 · CTE · 层级数据 · 层级数据 MySQL 递归CTE WITH RECURSIVE cte_max_recursion_depth 环检测
用部门层级和类别树说明 MySQL 8.4 递归 CTE 的停止条件、cte_max_recursion_depth、循环引用检测与路径验收,避免层级查询卡住或重复展开。454 收藏 -
MySQL 事件已经创建却没有按时执行,通常要分开核对全局调度器、事件自身状态、创建时区和 DEFINER 权限。本文用一个可复查的小项目演示排查顺序,并补上重复触发与错误日志边界。452 收藏 -
MySQL 遇到 OR 条件时可能选择 Index Merge,但这不代表它一定优于联合索引。本文用订单筛选场景拆开合并扫描、回表、排序与改写边界,给出 EXPLAIN 和 EXPLAIN ANALYZE 的核对方法。451 收藏 -
MySQL 存储过程遇到业务校验失败时,SIGNAL 可以主动抛出可识别错误,RESIGNAL 可以在处理器中保留或补充原始诊断信息。本文用订单额度校验示例说明错误传递、事务回滚和调用方验收的边界。438 收藏 -
数据库 · MySQL | 3天前 | MySQL · 递归 · SQL查询 · 故障排查 · CTE · WITH RECURSIVE cte_max_recursion_depth MySQL CTE 递归查询 递归成员
递归 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 收藏 -
数据库 · MySQL | 1星期前 | 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 | 1星期前 | MySQL · utf8mb4 · 字符集 · 排序规则 · 数据库迁移 · 字符集 排序规则 utf8mb4 MySQL 8.4 SET NAMES 连接字符集
从服务端默认值、数据库和表级覆盖,到连接握手后的四个 session 变量,给出一套可回滚的 MySQL 8.4 utf8mb4 迁移与验收流程,避免中文写入正常却排序、比较和结果返回异常。423 收藏 -
InnoDB 默认使用 REPEATABLE READ,范围更新可能拿到间隙锁。本文用订单号范围写入场景对比 READ COMMITTED 的锁行为,说明它能减少什么等待、不能替代什么并发保护,以及上线前如何用 data_locks 和事务回归确认结果。421 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
数据库 · MySQL | 3天前 | MySQL · 执行计划 · 查询优化 · 统计信息 · 数据库性能 · explain MySQL 8.4 直方图统计 ANALYZE TABLE COLUMN_STATISTICS
当 WHERE 条件落在数据分布很不均匀的列上,MySQL 估算行数可能偏离实际。本文用 orders.status 这个可复现实例,说明什么时候建立直方图、如何选择桶数量,以及怎样用 COLUMN_STATISTICS 和 EXPLAIN 验收收益。420 收藏 -
数据库 · MySQL | 2星期前 | MySQL · 复制 · 主键 · InnoDB · 数据库迁移 · 数据库迁移 MySQL 8.4 sql_generate_invisible_primary_key 生成不可见主键 my_row_id
MySQL 8.4 可以为没有显式主键的 InnoDB 表生成不可见主键。本文用迁移排查场景说明如何确认 my_row_id、区分源库与副本行为,并给出备份、建表和回滚验收清单。419 收藏