LOADING
加载过慢请开启缓存 浏览器默认开启
数据库
外键
- 企业级项目一般不建立外键,因为外键会导致数据库的耦合性增加,而且外键存在级联约束,会导致数据库的性能下降。主要影响写入操作,对子表进行写入的时候会对父表加共享锁,在高并发的情况下会导致数据库的性能下降。
- 阿里巴巴Java开源手册——不得使用外键与级联,一切外键关联一律在应用层处理。
事务
- 数据库事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
- 事务的四个特性:原子性A、一致性C、隔离性I、持久性D。
- 原子性:事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。
- 一致性:事务执行前后,数据库的完整性约束没有被破坏。如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
- 隔离性:多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
- 持久性:事务一旦提交,对数据库的改变是永久性的。