相关事故

1: 大量满查询: sql语句没写好;没有加索引(支持Online DDL, 在线执行alter table即可 );
2: 短链接风暴
3: qps突增: 下掉有问题的业务;查询重写;断开特殊用户的所有链接(依赖于运维规范,确保有问题的sql使用的是一个特殊的用户)
4: 给大表加ddl, 因为mysql5.6优化了online ddl, 几乎不会阻塞dml; 例如:
参考:https://juejin.cn/post/6854573213167386637#comment
记得在低峰期加字段, cpu低

  1. alter table t add usersample_status tinyint(4) NOT NULL DEFAULT '0' COMMENT '用户抽样配置开关. 0:disabled, 1:enabled', ALGORITHM=INPLACE, LOCK=NONE;

5: mysql的ddl不能回滚, 所有必须和dml分开执行

为了确保sql上线前没有问题:

1: 搞一个测试db, 打开慢查询日志, 设置long_query_time为0, 确保每条sql都写入慢查询日志
2: 将线上的db数据导入测试库,进行回归测试
3: 检查row_examined是否和预期一致
4: 如果sql过多, 可以借助工具:使用 pt-query-digest 分析 RDS MySQL 慢查询日志