三大范式
- 第一范式1NF:数据库表中所有字段不可再分
- 第一范式2NF:在第一范式基础上,表中所有字段都完全依赖于主键,不存在部分依赖
- 第一范式2NF:在第二范式基础上,表中所有字段都直接依赖于主键,不存在间接依赖(传递依赖)
索引类型
- 按底层数据结构划分:
- B-Tree索引
- 哈希索引
- R-Tree索引
- 全文索引
- 按数据存储方式划分
- 聚簇索引
- 非聚簇索引
- 按应用类型划分
- 主键索引
- 普通索引
- 唯一索引:用于保证列值唯一
- 联合索引:多个列组成一个索引
- 覆盖索引:组成索引的字段覆盖了需要查询的字段
- 全文索引
事务中出现的问题
- 脏读:事务A先修改再回滚,事务B在事务A回滚之前读,读到的就是脏数据
- 丢失修改:事务A和事务B同时读取并修改一个数据(例如A=A-1),其中一个事务的修改会被覆盖,从而丢失
- 不可重复读:事务A多次读一个数据,事务B在中间修改或删除数据导致事务A前后读取的数据不一致
- 幻读:事务A多次读一个数据,事务B在中间插入数据导致事务A读到的数据变多
隔离级别
- 读取未提交:可能导致脏读、幻读、不可重复读
- 读取已提交:可能导致幻读、不可重复读
- 可重复读:可能导致幻读
- 串行化: