客服微信
考试科目:PGCA-E-090
考试题量:40 道单项选择题、10 道多项选择题(每题 2 分)
通过分数:60%
考试时间:60min
本文为云贝教育刘峰(微信:yunbee_DBA)原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。
PostgresSQL是否能够自动检测到死锁,然后退出其中一个事务?
A.是
B.否
参考答案:A
解析:
模拟死琐
1)准备一张表,插入两条数据
testdb=> select * from s1.t2; id ----- 111 222
2)窗口1开启事务1
testdb=> begin; BEGIN testdb=*> update s1.t2 set id=1 where id=111;
3)窗口2开启事务2
testdb=> begin; BEGIN testdb=*> update s1.t2 set id=2 where id=222; UPDATE 1
4)回到窗口1,修改事务2的数据
testdb=*> update s1.t2 set id=22222 where id=222; 。。。。等待中
5)回到窗口2,修改事务1的数据
testdb=*> update s1.t2 set id=1111 where id=111;
6)此时窗口的事务2监控到死琐
ERROR: deadlock detected DETAIL: Process 113991 waits for ShareLock on transaction 779; blocked by process 119247. Process 119247 waits for ShareLock on transaction 780; blocked by process 113991. HINT: See server log for query details. CONTEXT: while updating tuple (0,3) in relation "t2"
7)查看最终数据
testdb=> select * from s1.t2; id ------- 1 22222 (2 rows)
发现第一行数据修改被提交,第二行数据修改被回滚。
PostgreSQL PGCA考试为理论考试,需通过PostgreSQL PGCA-E-090 考试才能拿到“PostgreSQL PGCA证书”。
以下是PostgreSQL官网的考试费,可以添加云贝教育的课程顾问老师微信19941464235或者19906632509,咨询有优惠。
PostgreSQL证书如下 合格考生公布:考后不超过 5 个工作日 “开源软件联盟 PostgreSQL 分会”公众号发布 证书寄送:考后统一寄送至培训机构)
云贝教育有专业的PostgreSQL PGCA认证培训课程,想快速通过考试的同学可以扫码联系老师咨询(点击文字转跳至PostgreSQL PGCA大纲)