【读书笔记】数据库
这里是整理了数据库的一些常见问题,以及基本命令 1、数据库中的事务 数据库事务是数据库运行中的逻辑工作单位,单个逻辑工作单元所执行的一系列操作,要么都执行,要么都不执行。 2、数据库事务的四大特性(ACID) 原子性(Atomicity):一件事务要么提交成功,要么全部失败回滚 一致性(Consistency):事务执行前后都保持一致性原则 隔离性(Isolation):事务提交之前它对其他所有事务不可见。通过乐观锁和悲观锁实现 持久性(Durability):一旦事务提交,所做修改永久保存到数据库中 3、数据库的锁 乐观锁:假设不会发生冲突,直到事务提交时才检查是否违反了完整性(通过数据 版本或者时间戳实现;添加version字段,每做一次操作就让version+1,提交时进行对比) 悲观锁:假设一定会发生冲突,屏蔽一切可能违反完整性的操作(synchronized就是悲观锁) 共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁。获准共享锁的事务只能读数据,不能修改数据。 排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 4、数据库优化 (1)sql语句的优化 子查询变成left join or条件优化,多个or条件可以用union all对结果进行合并