7.数据库

一、三大范式:

第一范式:每一列都是不可拆分的

第二范式:属性完全依赖于主键

第三范式:属性不能传递依赖于主属性

https://blog.csdn.net/qq_15037231/article/details/61628143

二、主键

<1>自增ID

优:数据库自动增加,int/bigint,SQL Server默认聚集索引,空间小,可以有业务意义

劣:多库环境、不同环境的数据库ID冲突

<2>GUID

优:GUID程序生成的,全球唯一,插入数据库,不会错误的join,无限的,方便导入

劣:空间大,没有自身含义,没有聚集索引(创建时间来聚集)

三、外键

优:外键做数据关联,级联删除,有严格数据关系的时候用外键

劣:导入麻烦,增删改时数据库多一步操作

合理使用:尽量少的使用外键,大型互联网项目瓶颈一般都在数据库,尽量少的让数据库做事

四:数据库事务

多条sql作为一个整体提交给数据库系统,要么全部执行完成,要么全部取消,是一个不可分割的逻辑单元

原子性:要么都成功,要么都失败

一致性:事务执行完,数据都是正确的

隔离性:两个事务同时操作同一张表,B事务要么是在A事务前完成,要么在A事务完成时执行(锁表)

持久性:数据提交后 就固话下来

高并发的系统:死锁其实是不可避免的,尽量减少

1.按照固定顺序操作数据

2.事务尽量的简短,更不要在事务期间等待,降低并发,锁的隔离级别

你可能感兴趣的:(7.数据库)