osdba PostgreSQL锁分析.pdfx

osdba PostgreSQL锁分析.pdfx

ID:32433035

大小:599.80 KB

页数:42页

时间:2019-02-04

osdba PostgreSQL锁分析.pdfx_第1页
osdba PostgreSQL锁分析.pdfx_第2页
osdba PostgreSQL锁分析.pdfx_第3页
osdba PostgreSQL锁分析.pdfx_第4页
osdba PostgreSQL锁分析.pdfx_第5页
资源描述:

《osdba PostgreSQL锁分析.pdfx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、PostgreSQL锁分析唐成@Netease2013.10自我介绍姓名:唐成,网名osdba网易-杭州研究院职位:开发专家个人介绍C/C++、pythonPostgreSQL、Greenplum、Oracle分布式存储(现正在开发网易的云硬盘)正在写《PostgreSQL修炼之道:从小工到专家》QQ:191421283新浪微博:http://weibo.com/osdba2内容表锁介绍如何理解8种表锁死锁及防范pg_locks视图查看锁实战3锁类型表锁有8种锁行锁2种锁48种表锁

2、ACCESSSHAREROWSHAREROWEXCLUSIVESHAREUPDATEEXCLUSIVESHARESHAREROWEXCLUSIVEEXCLUSIVEACCESSEXCLUSIVE5不同表锁解释锁模式解释ACCESS只与ACCESSEXCLUSIVE模式冲突SHARESELECT命令将在所引用的表上加此类型的锁。通常,任何只读取表而不修改表的查询都请求这种锁模式。ROWSHARE与EXCLUSIVE和ACCESSEXCLUSIVE锁模式冲突。SELECTFORUPDATE和SELECTF

3、ORSHARE命令会在目标表上加此类型的锁。ROW与SHARE,SHAREROWEXCLUSIVE,EXCLUSIVE,EXCLUSIVEACCESSEXCLUSIVE锁模式冲突。UPDATE,DELETE,INSERT命令会自动在所修改的表上请求加这个锁。通常,修改表中数据的命令都是表上加这种锁。6不同表锁解释锁模式解释SHARE与SHAREUPDATEEXCLUSIVE,SHARE,SHAREROWUPDATEEXCLUSIVE,EXCLUSIVE,ACCESSEXCLUSIVE锁模式冲EXCLUSIVE突。模式

4、改变和运行VACUUM并发的情况下,这个模式保护一个表。VACUUM(不带FULL选项),ANALYZE,CREATEINDEXCONCURRENTLY命令请求这样的锁。SHARE与ROWEXCLUSIVE,SHAREUPDATEEXCLUSIVE,SHAREROWEXCLUSIVE,EXCLUSIVE,ACCESSEXCLUSIVE冲突。这个模式避免表的并发数据修改。CREATEINDEX(不带CONCURRENTLY选项)语句要求这样的锁模式。SHAREROW与ROWEXCLUSIVE,SHAREUPDATEEX

5、CLUSIVE,EXCLUSIVESHARE,SHAREROWEXCLUSIVE,EXCLUSIVE,ACCESSEXCLUSIVE冲突。任何PostgreSQL命令都不会自动请求这个锁模式。7不同表锁解释锁模式解释EXCLUSIVE与ROWSHARE,ROWEXCLUSIVE,SHAREUPDATEEXCLUSIVE,SHARE,SHAREROWEXCLUSIVE,EXCLUSIVE,ACCESSEXCLUSIVE冲突。这个模式只允许并发ACCESSSHARE锁,也就是说,只有对表的读动作可以和持有这个锁模式的事务

6、并发执行。任何PostgreSQL命令都不会在用户表上自动请求这个锁模式。不过,在某些操作的时候,会在某些系统表上请求它。ACCESS与所有模式冲突(ACCESSSHARE,ROWSHARE,ROWEXCLUSIVEEXCLUSIVE,SHAREUPDATEEXCLUSIVE,SHARE,SHAREROWEXCLUSIVE,EXCLUSIVE,ACCESSEXCLUSIVE)。这个模式保证其只能有一个人能访问此表。ALTERTABLE,DROPTABLE,TRUNCATE,REINDEX,CLUSTER,VACUUM

7、FULL命令要求这样的锁。在LOCKTABLE命令没有明确声明需要的锁模式时,它是缺省锁模式。8如何理解8种表锁9如何理解这8种锁开始只有两种锁SHARE:共享锁,或可以理解为读锁,多个事务都可以同时加上此锁。但任何一个事务加上此锁后,就不能修改数据。EXCLUSIVE:可以理解为排它锁,或写锁。加上此锁后,再修改数据。多版本导致需要增加新的锁改了一行数据,实际上并没有改原先那行数据,而是先复制出一个新行,然后在新行上改导致修改数据的同时可以读数据10如何理解这8种锁多版本增加的锁ACCESSSHAR

8、E:表明加上这个锁,即使正在的修改数据的情况下,还是让读数据ACCESSEXCLUSION:即使有多版本的功能,也不允许读数据多版本之后:以前的“SHARE”锁,意思还是与原先一样,加了这个锁下,就不能对表作任何的变更;同样以前的“EXCLUSIVE”锁还叫“EXCLUSIVE”锁,意思与原来的意思也差不多,就是除可以允许多版本的读,其它的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。