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