数据库的三大范式
第一范式(1NF):原子性(存储的数据应该具有“不可再分性”)
第二范式(2NF):唯一性 (消除非主键部分依赖联合主键中的部分字段)(一定要在第一范式已经满足的情况下)
第三范式(3NF):独立性,消除传递依赖(非主键值不依赖于另一个非主键值)
事务的四大特性ACID
1 原子性
包含事务的所有操作要不全部成功 要不全部回滚,因此事务要是操作成功一定完全写到库里,操作失败一定不会对数据库有影响
2 一致性
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
3 隔离性
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
4 持久性
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。
索引
聚集型索引:物理存储按照索引排序 只能有一个 如果主键没有 那么就是非空字段
非聚类型的索引:物理存储不按照索引排序,可以有多个
索引失效的几个场景
1 没满足最左匹配原则 最左匹配的理解
2 使用了聚合函数
3 使用到了 OR is not null
4 对索引字段使用了一些转换函数