数据库设计
文章平均质量分 56
ispringmw
我们都是时代的沙尘
展开
-
Postgres表死锁演示
Postgres表死锁演示进程16028持有 A 表的锁:进程13700持有 B 表的锁:查询系统表如图所示:进程16028期望持有 B 表的锁,进程16028等待获得B 表的锁:同时进程13700也期望持有A表的锁,进程13700等待获得 A表的锁,此时进程16028和13700同时等待获得对方持有的锁,应用程序16028正在等待应用程序13700持有的资源来完成运行,而应用程序16028正在等待应用程序13700持有的资源,这样我们就遇到了死锁**数据库引擎将检测死锁并终止其中一个原创 2021-09-28 00:10:04 · 173 阅读 · 0 评论 -
Postgresql vacuum 和 vacuum full
转载自 https://www.modb.pro/db/79515在PostgreSQL的各种技术讨论和日常运维中,vacuum基本离不开讨论范围。在日常运维中由于各种原因导致数据库中产生的垃圾数据无法被回收,会造成表/索引的垃圾比例可能一直高于阈值,造成表/索引膨胀。所以在PostgreSQL数据库管理运维过程中,经常需要调整一些vacuum参数,以优化数据库的性能。在了解具体的vacuum参数前,我们更想了解下面几个问题。vacuum 是什么?为什么需要 vacuum?vacuu.转载 2021-09-07 11:43:19 · 1222 阅读 · 0 评论 -
PostgreSQL中的表锁
PostgreSQL的并发控制以**快照隔离(SI)为主,以两阶段锁定(2PL)**机制为辅。PostgreSQL对DML(增删改查等命令)使用SI,对DDL(CREATE TABLE等命令)使用2PL。PostgreSQL有好几类锁,其中最主要的是表级锁与行级锁,此外还有页级锁,咨询锁等等。表级锁通常是各种命令执行时自动获取的,或者通过事务中的LOCK语句显式获取;而行级锁则是由SELECT FOR UPDATE|SHARE语句显式获取的。本文主要介绍PostgreSQL中的表锁。表级锁表级转载 2021-07-13 16:21:41 · 5095 阅读 · 1 评论