业务数据住在表里

行、列、索引和事务,决定系统能不能问出正确的答案。

SELECT id, name, purpose FROM schema_notes LIMIT 5;

页面可以重做,缓存可以清空,表里的数据却要活得比功能更久。用户、订单、库存、日志,一旦字段含义含糊,后面的统计和客服工单都会跟着含糊。

#对象说明
1主键与约束每一行都该能被唯一找到。非空、唯一、外键不是手续,是防止脏数据混进来的栅栏。
2索引索引让查找走捷径,也会让写入变慢。按真实查询建,不要给每一列都加一份“以防万一”。
3事务下单减库存必须同时成功或同时失败。提交前看见的中间态,不该被另一笔订单读走。
4查询形状过滤、排序、分页、关联,是列表接口的四件套。慢查询往往不是 SQL 太长,而是扫描了不该扫描的行。
5备份与变更结构变更要可回放,备份要真的能恢复。只在生产里手改一列,下一次发布就会对不上。