事务处理和并发控制
一、事务管理简介
1、事务含义
2、事务的属性ACID
四大属性:原子性、一致性、隔离性、持久性。
3、事务块管理的常用语句
BEGIN 和COMMIT同时用,是用来标识事务的开始和结束。
4、案例
①、创建表
②、插入数据并查询
二、事务并发控制
数据库中的数据并发操作经常发生,会出现:
1、脏读
2、幻读
3、不可重复性读取
三、锁机制
需要使用锁机制来保证事务的并发。使用锁可以解决用户存取数据的这个问题,从而保证数据库的完整性和一致性。
(一)、锁的类型
1、SpinLock (自旋锁)
2、LWLock (轻量级锁)
3、RegularLock
是一般数据库事务管理中所指的锁。只要特点是等待队列、死锁检测和能自动释放锁。
(二)、死锁
1、死锁出现的原因
行程死锁的必要条件:
2、可能会造成死锁的原因
①、锁:等待获取资源(如对象、页、行、元数据和应用程序)的锁可能导致死锁。
②、工作线程:排队等待可用工作线程的任务可能导致死锁。如果排队等待的任务拥有阻塞所有工作线程的资源,则将导致死锁。
③、内存:当并发请求等待获得内存,而当前的可用内存无法满足其需求时、可能发生死锁。
④、并行查询的相关资源。通常与交换端口关联的处理协调器、发生器或使用者线程至少包含一个不属于并行查询进程时,可能会互相阻塞,从而导致死锁。
3、减少死锁的策略
复杂系统中不能百分之百的避免死锁。
四、应用
1、LOCK锁的语法
2、事务和锁的区别
参考书籍资料!!
文章来源: pgAdmin4 应用(十)