MySQL技术文章
-
数据库 · MySQL | 1个月前 | MySQL · 表结构 · 备份恢复 · mysqldump · mysql mysqldump 逻辑备份 GIPK generated invisible primary key
说明 mysqldump 如何保留或排除生成不可见主键,并用恢复后的建表语句和列元数据核对结果。464 收藏 -
MySQL 的 CREATE TABLE ... SELECT 会默认忽略源表的 INVISIBLE 列;显式选择后列会进入新表但默认变为可见。本文用 CTAS 示例说明如何选择隐藏列、保留隐藏属性,并检查最终结构。266 收藏 -
MySQL 的 INVISIBLE 列仍然存在,只是不会被 SELECT * 或表别名通配展开。本文用最小示例对比通配查询、显式列名和元数据排查方法,说明如何兼容旧接口并稳定读取隐藏辅助列。213 收藏 -
MySQL 批量导入遇到 CHECK 约束不应只看导入是否结束。本文用 LOAD DATA IGNORE 保留合法行,说明如何紧接着读取 SHOW COUNT(*) WARNINGS 与 SHOW WARNINGS,并把违规信息交给审计流程。170 收藏 -
MySQL CHECK 约束可以先用 NOT ENFORCED 保留定义,再在清理存量脏数据后切换为 ENFORCED。本文用一张订单表串起状态识别、违规扫描、修复隔离和 ALTER CHECK 切换的完整迁移路径。395 收藏 -
MySQL CHECK 约束遇到 NULL 时可能返回 UNKNOWN,而 UNKNOWN 与 TRUE 一样不会触发 CHECK 失败。本文用字段约束对照说明三值逻辑,并给出 NOT NULL 与 CHECK 的显式非空写法。265 收藏 -
用 InnoDB 任务表实现并发取件时,NOWAIT 适合立即失败,SKIP LOCKED 适合跳过占用行。本文给出事务边界、SQL 写法、错误处理和复制安全边界。360 收藏 -
MySQL 连接属性不会自动把会话送进资源组。本文用 session_connect_attrs 识别连接,再通过 SET RESOURCE GROUP 完成调度,并给出线程核对、权限与连接池复用的配置方法。388 收藏 -
MySQL 直方图不会因为每次写入自动按固定周期刷新。本文用 COLUMN_STATISTICS 判断数据漂移,比较手动刷新与 AUTO UPDATE,并给出采样率、执行计划和回滚检查清单。222 收藏 -
整理 MySQL GTID 复制切换前的核对方法,区分接收集合与执行集合,用 GTID_SUBSET 和 GTID_SUBTRACT 判断候选副本是否覆盖主库事务,并保留回退依据。469 收藏 -
递归 CTE 的安全上限不能只依赖 cte_max_recursion_depth。本文从故障场景出发,拆分业务深度、结果行数和执行时间三种边界,并给出 MySQL 的配置与复查方法。226 收藏 -
MySQL LAG 可以在每个分组内取上一行值,再用当前值与上一值比较标出状态切换或连续数值变化。本文给出窗口定义、变化点筛选、NULL 处理和排序稳定性的完整写法。248 收藏 -
MySQL 分区裁剪失效,常见原因不是分区本身无效,而是 WHERE 条件没有暴露可识别的分区表达式。本文从函数包裹、隐式转换和 OR 条件三个边界出发,给出按分区键改写查询的方法,并说明 EXPLAIN PARTITIONS 能确认什么。169 收藏 -
MySQL CREATE TABLE LIKE 会复制源表的列属性和索引,并保留生成列、表达式默认值与 CHECK 约束;但外键及部分目录表选项不会复制。本文用最小 SQL 说明保留边界,并给出结构核对方法。331 收藏 -
MySQL 8.4 的普通 JSON_ARRAYAGG 不保证元素顺序,也没有内置 LIMIT。本文用 ROW_NUMBER、窗口 ORDER BY 和完整窗口帧生成每组固定数量、顺序稳定的 JSON 数组,并说明常见误区。265 收藏