MySQL DDL 和语法片段很容易散落在各处:加字段、改字段、字符集、大小写敏感、批量插入、case when、格式化。整理时可以把它们拆成几个专题入口。
在线 DDL 和字段变更
第一类是字段变更。
常见内容包括:
- 添加字段。
- 修改字段。
- 删除字段。
- 添加索引。
- 在线 DDL。
- pt-online-schema-change。
- 主从环境变更。
生产环境 DDL 要先看表大小、锁影响、主从延迟和回滚方案。不要只确认语法正确就直接执行。
字符集和大小写
第二类是字符集、排序规则和大小写敏感。
这里要记录:
BINARY。COLLATE。- 字符集。
- 排序规则。
- 字段大小写敏感。
- 查询条件是否能用索引。
字符集问题经常表现为查询结果不符合预期,或者线上数据和本地数据行为不一致。
批量插入
第三类是插入优化。
可以整理:
- 多值 insert。
- 事务批量插入。
- 有序插入。
max_allowed_packet。- 批次大小。
- 失败重试。
批量插入不是越大越好。批次太大可能带来锁、日志、网络包和回滚成本。
case when 和格式化片段
第四类是 SQL 片段。
常见有:
case when。- 条件聚合。
- 条件更新。
- 小数格式化。
- 临时统计 SQL。
这类片段适合做成可复制的小样例,但要写清楚适用场景,避免下次直接复制到不合适的表上。
异常和锁要交叉链接
DDL 和运维语法还会牵涉:
- 锁等待。
- 死锁。
- 连接池耗尽。
- 通信异常。
- 事务提交失败。
这些内容可以交叉链接到 MySQL 异常排障和锁专题,不必都放在 DDL 页面里。
维护建议
MySQL DDL 资料可以按五类维护:
- 在线 DDL 和字段变更。
- 字符集和大小写。
- 批量插入。
- SQL 片段。
- 异常和锁交叉入口。
这样以后写 SQL 或做表结构变更时,能先判断风险,再找语法,而不是反过来。
正文完




