MySQL技术文章
-
MySQL XA 事务进入 PREPARED 后,连接断开并不代表事务已经消失。本文从 XA RECOVER、事务分支和业务提交记录入手,说明如何区分可提交、可回滚和需要人工确认的状态,并给出恢复前后的验收边界。412 收藏 -
MySQL 函数索引不生效时,先检查双括号、表达式是否一致、结果类型是否相同,再用 EXPLAIN 区分不匹配与优化器成本选择。412 收藏 -
MySQL 默认表达式引用其他列建表失败时,重点检查括号、依赖列定义顺序、AUTO_INCREMENT 和表达式默认值的适用边界,并用两次 INSERT 复查计算时机。410 收藏 -
从全局 TempTable 内存、单表临时表上限和溢出路径三个角度,说明如何读取并设置 MySQL temptable_max_ram,再用状态变量与 Performance Schema 判断调整是否有效。409 收藏 -
MySQL JSON_VALUE 可以直接参与表达式索引。本文以订单 payload 中的 customer_id 为例,说明如何用 RETURNING UNSIGNED 固定类型、用双括号创建索引、让 WHERE 表达式保持兼容,并处理缺失键、JSON null 与转换错误。406 收藏 -
MySQL CTE 变慢时,先确认优化器选择了合并还是物化,再用 NO_MERGE、MERGE 和 SESSION 级 derived_merge 做对照,最后用 optimizer_trace 找到物化代价来自哪里。406 收藏 -
MySQL 8.4 复制过滤看似配置正确却漏表时,重点核对 replicate-wild-do-table 的库表模式、语句中是否显式提到目标表、数据库级规则优先级和复制线程实际加载的配置。405 收藏 -
MySQL 深分页变慢,通常不是 LIMIT 取几十行的问题,而是 OFFSET 让服务器先定位并丢弃前面的大量记录。本文用稳定联合排序和游标条件改写下一页查询,并说明如何用 EXPLAIN 判断索引是否真正接住了边界。405 收藏 -
围绕 MySQL JSON 数组成员检索,说明多值索引的 CAST 定义、查询匹配、EXPLAIN 验证,以及空数组、NULL、JSON null 和大数组边界。404 收藏 -
删除 MySQL 主表记录时遇到外键失败,原因可能是子表仍有引用、约束动作不是预期,或事务锁尚未释放。本文用订单与订单明细场景区分 RESTRICT、CASCADE 和锁等待,并给出可复现的检查命令。403 收藏 -
MySQL JSON 列不能直接建立普通索引时,可以用生成列抽取稳定的标量值,再按正确类型建立索引。本文说明 JSON_EXTRACT、JSON_UNQUOTE、生成列和 EXPLAIN 之间的关系。401 收藏 -
两张结构一致的订单表合并查询时,UNION ALL 与 UNION 的差别不只是有没有重复数据,还会影响去重、临时表和排序路径。本文用可复现实验拆开两者的边界,并给出选择与验收方法。395 收藏 -
用 MySQL 窗口函数按分组生成稳定行号,再通过 CTE 或派生表筛选组内分页;同时说明 ROW_NUMBER、RANK、DENSE_RANK 的并列差异。395 收藏 -
数据库 · MySQL | 3星期前 | MySQL · 高可用 · 运维 · 性能排查 · mysql MySQL 8.4 复制延迟 replica_parallel_workers replication_applier_status_by_worker
MySQL 8.4 复制延迟不能只看 Seconds_Behind_Source。本文按接收、协调器、worker 和事务提交四段拆分现场,结合 SHOW REPLICA STATUS 与 Performance Schema 指标判断是大事务、并行度不足还是单个 worker 卡住。393 收藏 -
MySQL InnoDB 在线新增二级索引时,ALGORITHM 决定变更实现方式,LOCK 表达并发读写要求。本文用场景、决策表和 SQL 示例说明怎么选,以及哪些情况下应让变更直接失败。393 收藏