MySQL技术文章
-
说明 MySQL GET DIAGNOSTICS 如何区分语句信息和条件信息,并在存储程序中读取 SQLSTATE、错误号、消息文本及影响行数。318 收藏 -
用 SESSION 级 foreign_key_checks 安排 MySQL 外键迁移,保存原值、完成导入并用孤儿数据查询确认恢复结果。318 收藏 -
数据库 · MySQL | 1个月前 | MySQL · 事务 · InnoDB · Serializable READ COMMITTED REPEATABLE READ MySQL事务隔离级别 一致性读 InnoDB快照
从 InnoDB 快照建立时机入手,比较四种事务隔离级别对一致性读、并发提交和锁定读的影响,并给出两个会话的最小验证模板。317 收藏 -
MySQL CTE 不一定会被物化:优化器可能把它合并到外层查询,也可能建立内部临时表。本文用 MERGE、NO_MERGE 和 EXPLAIN FORMAT=JSON 说明怎样判断计划选择。315 收藏 -
从只读视图部分调用者失败的现象入手,按创建时、引用时和函数执行时拆解权限检查,比较 SQL SECURITY DEFINER 与 INVOKER 的差异,并给出查看定义、选择上下文和防复发的处理顺序。314 收藏 -
通过 InnoDB 范围 UPDATE 与并发 INSERT 的双事务场景,解释记录锁、间隙锁和 next-key 锁何时出现,并给出索引、隔离级别、锁等待观察与缩小锁范围的实用判断方法。313 收藏 -
MySQL GTID 自动定位可以减少复制切换时对文件偏移量的人工计算,但前提是先确认 GTID 模式、复制线程和已执行事务集。本文给出从停写、选择候选副本、重指向下游到旧源回接的清单。313 收藏 -
用 performance_schema.data_lock_waits 连接等待锁与持有锁,再回到 data_locks 和线程事件核对对象、事务和处理顺序,避免只看到一个线程就误判。312 收藏 -
使用 MySQL ROW_NUMBER() 按业务键分组、按更新时间倒序取每组最新记录,并处理并列时间、NULL 和索引等常见边界。312 收藏 -
MySQL JSON_REMOVE 支持在一次表达式中传入多个 JSON path。本文用嵌套对象示例说明路径从左到右求值、缺失成员的处理方式、父对象与叶子成员的删除边界,以及生产更新前的预览、权限和回滚检查。312 收藏 -
MySQL JSON_ARRAYAGG 没有匹配行时会返回 SQL NULL。本文区分无输入行、NULL 扩展行和 JSON 空数组,给出 COALESCE 以及先聚合后关联的稳定处理方案。312 收藏 -
MySQL UPDATE 条件看起来只命中少量数据,却出现大范围锁等待时,按执行计划、data_locks、范围锁和事务边界逐层定位,避免盲目改隔离级别。311 收藏 -
MySQL 连接池空闲连接被 wait_timeout 或中间网络设备断开后,不要只靠重试。本文从服务端超时、连接池回收、PingContext 和事务安全四个层面给出恢复方案。311 收藏 -
MySQL 的窗口函数执行信息不会完整出现在传统 EXPLAIN 表格中。本文从 query_block.windowing.windows[] 入手,说明如何读取函数、排序、临时表和窗口分组字段。311 收藏 -
MySQL 分区表建好后查询仍然很慢,往往不是分区失效,而是条件没有触发分区裁剪。本文用按月订单表拆解 EXPLAIN PARTITIONS、范围条件和分区键改写的验证方法。310 收藏