外键
一个表中的主键a,在表b中存在,那么a就是表b的外键
alter table xxx add foreigner key (a) reference ooo (id)
- 每次插入数据会检测外键关联性,如果频繁插入数据应取消
索引
加速查询,经常以哪个字段为查询条件,就用哪个会最高效
- 插入数据会更新索引
- 少量数据不需要索引也很快
- 索引适合,数据量大,不经常变动数据,经常需要查询的表。
事务
-
ACID
-
原子性,事务是一个最小原子单位,不可能再被拆分,整个事务要么全部执行成功,要么全部失败。
-
一致性,事务的一致性状态转换(个人感觉原子性已经决定了这个一致性,似乎概念重复了,或者哪个点还没get到!)
-
隔离性,多个事务相互隔离,提交时则以队列形式挨个处理
-
持久性,事务一旦提交持久保存
-
事务操作
-
begin/start transaction 开始事务
-
commit 提交事务
-
rollback + commite 回滚到开始的状态,然后提交。(未做任何改动)
三范式
- 数据单独存放,一个一段不存两类数据
- 表中所有字段强相关于主键
- 表中每个字段必须直接强相关联于主键