MySQL技术文章
-
数据库 · MySQL | 2天前 | MySQL · 事务 · InnoDB · 锁定读 MySQL NOWAIT FOR UPDATE NOWAIT FOR SHARE NOWAIT InnoDB行锁 ERROR 3572
MySQL 锁定读默认会等待冲突行锁,追加 NOWAIT 后可立即返回 3572 错误。本文用双连接示例说明 FOR UPDATE NOWAIT 的写法、事务回滚、错误处理,以及它与默认等待和 SKIP LOCKED 的边界。253 收藏 -
用一组混合 JSON 数据拆开 JSON_TABLE 的缺失路径、类型转换、默认值与报错边界,给出可直接改写的 SQL 配置方法。251 收藏 -
MySQL 直方图默认采用手动更新模式。批量导入删除、数据倾斜迁移、执行计划估算明显偏离或迁移恢复后应优先评估更新;MySQL 8.4 可启用 AUTO UPDATE,但仍需理解触发边界。306 收藏 -
MySQL 不可见索引可以模拟删除而保留快速回滚能力。本文从索引约束、不可见化、执行计划、慢查询和工作负载三层观察,给出决定是否 DROP INDEX 的检查顺序。358 收藏 -
MySQL DDL 出现 Waiting for table metadata lock 时,可用 sys.schema_table_lock_waits 与 performance_schema.metadata_locks 找到等待和阻塞会话,再核对事务后安全处理。228 收藏 -
MySQL 8.4 可以在关闭时保存 Buffer Pool 中最近使用页的表空间与页编号,并在下次启动后由后台线程重新加载。本文给出配置、手动触发、进度检查和常见失效排查方法。425 收藏 -
MySQL Prepared statement 通常按会话缓存内部结构;引用表或视图的元数据变化、表定义缓存刷新时,下一次执行会自动重新预编译。本文用触发清单和 Com_stmt_reprepare 说明排查边界。387 收藏 -
定位 MySQL 的 Illegal mix of collations,不要先改全库字符集;应先对报错表达式两侧执行 COLLATION() 与 COERCIBILITY(),再检查列定义和连接变量。486 收藏 -
MySQL 导入备份遇到 GTID_PURGED 冲突时,先比较备份 GTID 集与目标端 gtid_executed、gtid_purged、gtid_owned,再按新副本、已有实例或多份局部备份选择保留、注释或省略 GTID 元数据。455 收藏 -
MySQL 复制过滤不是按配置文件书写顺序覆盖,而是先改写库名,再判断库级规则,最后按精确表 do、精确表 ignore、通配表 do、通配表 ignore 的固定顺序命中即退出。本文结合 STATEMENT、ROW 与 DDL 的差异,给出可推演的判断方法。382 收藏 -
数据库 · MySQL | 3天前 | MySQL · InnoDB · 数据库运维 · mysql 死锁 错误日志 events_statements_history_long data_lock_waits Performance Schema
MySQL 可用错误汇总表统计 1213,用语句历史表定位受害 SQL,用锁表观察当前阻塞;完整死锁图仍应写入错误日志长期留存。372 收藏 -
MySQL 显式指定 ALGORITHM=INSTANT 时不支持就会报错,不会自动回退。本文给出按操作类型、表属性、并发与空间风险判断 INPLACE 或 COPY 的生产变更方法。333 收藏 -
MySQL 函数索引常写显式 CAST,是为了把表达式结果收敛为可索引的数据类型和长度。本文以 JSON 文本提取为例,说明隐藏生成列、LONGTEXT 限制、排序规则匹配及迁移检查方法。406 收藏 -
MySQL CTE 会在什么情况下物化而不是合并?本文从查询结构、递归 CTE、61 张基表边界和 EXPLAIN 计划出发,说明 MERGE、NO_MERGE 与 derived_merge 的判断方法。352 收藏 -
用重复排序值与数值间隔两个小实验,说明 MySQL 窗口函数中 ROWS 按行位置、RANGE 按排序值范围取框架,以及默认边界的常见误区。178 收藏