MySQL技术文章
-
MySQL 分区表建好后查询仍然很慢,往往不是分区失效,而是条件没有触发分区裁剪。本文用按月订单表拆解 EXPLAIN PARTITIONS、范围条件和分区键改写的验证方法。310 收藏 -
MySQL 8.4 的 CHECK 约束已经可以真正拦截不满足条件的写入,但约束状态、NULL 三值逻辑和隐式转换会让排查结果与直觉不同。本文用可复现实验核对约束定义、失败写入和历史脏数据清理边界。326 收藏 -
读写分离最容易出问题的地方不是把查询发到副本,而是写后读、事务边界和主副本切换时的会话状态。本文用 MySQL 8.4 的 GTID 等待与路由规则,搭一套可核对、可回切的处理方法。135 收藏 -
MySQL 角色并不等于自动最小权限:默认角色、通配符授权和库级权限叠加后,账号可能读到不该读的数据。本文用实际授权链拆解越权路径,说明 partial revokes 的边界,并给出可回滚、可审计的验收清单。145 收藏 -
MySQL 的 wait_timeout 控制非交互连接的空闲回收,但它不能替代连接池的生命周期管理。本文用连接池、会话变量和断线重连三个边界,给出可检查、可回滚的设置方法。420 收藏 -
MySQL REGEXP_LIKE 匹配结果不稳定时,先拆开字符集、排序规则、大小写和反斜杠四个边界。本文给出一套可复现的排查 SQL、修复写法与验收清单。157 收藏 -
把 MySQL LOAD DATA 导入大文件从一次性命令升级成可回滚流程:先固定字符集和字段边界,再隔离错误行,最后用临时表与原子切换避免半成品进入业务表。240 收藏 -
MySQL 存储过程遇到业务校验失败时,SIGNAL 可以主动抛出可识别错误,RESIGNAL 可以在处理器中保留或补充原始诊断信息。本文用订单额度校验示例说明错误传递、事务回滚和调用方验收的边界。438 收藏 -
MySQL 事务中遇到一条可恢复的业务错误时,不必立刻回滚全部操作。本文用 SAVEPOINT 演示局部回滚,解释保存点对锁状态的影响,并给出重试与提交前核对边界。482 收藏 -
数据库 · MySQL | 1天前 | MySQL · 执行计划 · 索引优化 · 数据库排查 · 线上变更 · mysql 不可见索引 Invisible Index optimizer_switch 索引回归
MySQL 的不可见索引适合用来观察“去掉这条索引会怎样”,但它不是删除前的自动回滚按钮。本文以订单查询为例,演示设置不可见、用 optimizer_switch 做单会话影子验证、检查执行计划和恢复可见性的边界。308 收藏 -
数据库 · MySQL | 1天前 | MySQL · SQL · 递归查询 · CTE · 层级数据 · 层级数据 MySQL 递归CTE WITH RECURSIVE cte_max_recursion_depth 环检测
用部门层级和类别树说明 MySQL 8.4 递归 CTE 的停止条件、cte_max_recursion_depth、循环引用检测与路径验收,避免层级查询卡住或重复展开。454 收藏 -
MySQL 的 NULL 不是普通空值,WHERE 条件还会产生 UNKNOWN。本文用订单查询拆开三值逻辑、IS NULL 判断和索引执行计划的边界。234 收藏 -
MySQL 组合索引不是把常用字段随意拼在一起。本文用等值条件、范围条件和排序三个场景说明列顺序如何影响扫描范围,并给出 EXPLAIN 验收方法。359 收藏 -
MySQL 8.4 中,RANGE 和 ROWS 看起来只差一个单词,却会在同分值、时间范围和滚动统计中产生不同结果。通过订单金额累计和 7 天滑动平均两个例子,定位默认窗口边界并给出验收方法。380 收藏 -
MySQL XA 事务进入 PREPARED 后,连接断开并不代表事务已经消失。本文从 XA RECOVER、事务分支和业务提交记录入手,说明如何区分可提交、可回滚和需要人工确认的状态,并给出恢复前后的验收边界。412 收藏