老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

PostgreSQLLocks的基礎知識有哪些-創新互聯

這篇文章主要介紹“PostgreSQL Locks的基礎知識有哪些”,在日常操作中,相信很多人在PostgreSQL Locks的基礎知識有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PostgreSQL Locks的基礎知識有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

成都創新互聯公司專注于中大型企業的網站設計制作、成都網站設計和網站改版、網站營銷服務,追求商業策劃與數據分析、創意藝術與技術開發的融合,累計客戶上千余家,服務滿意度達97%。幫助廣大客戶順利對接上互聯網浪潮,準確優選出符合自己需要的互聯網運用,我們將一直專注成都品牌網站建設和互聯網程序開發,在前進的路上,與客戶一起成長!

PostgreSQL把鎖分為三類,table-level, row-level and advisory locks.Table和Row級鎖可以是顯式或隱式鎖,advisory locks通常是顯式鎖.顯式鎖在顯式用戶請求時獲得,而隱式鎖則通過標準SQL命令獲得.

Advisory Locks
PG提供了應用自定義的locks,這種locks稱為Advisory Locks — 系統并沒有強制使用這些鎖,由應用自行正確使用.
有兩種方法請求獲取advisory lock : Session Level和Transaction Level.
session level : 一旦在session level獲取了鎖,除非session終止或者顯式的釋放,否則鎖會一直持有.不同于標準的鎖請求,session level的advisory lock不需要遵守事務語義:在事務期間申請的lock會在rollback后仍會持有,同時就算事務調用失敗unlock也是有效的.lock可以多次獲取,對于每一次完整的鎖請求必須在釋放鎖前有相應的unlock.
transaction level : 與普通鎖類似,在事務結束時自動釋放,沒有顯式的unlock操作.
對于同一個Advisory Lock,如果同時請求session leve和transaction level的鎖,那么會以期望的方式阻塞.
下面是Advisory Lock的例子:

session 1

[local]:5432 pg12@testdb=# -- Transaction 1
[local]:5432 pg12@testdb=# BEGIN;
BEGIN
Time: 0.882 ms
[local]:5432 pg12@testdb=#* 
[local]:5432 pg12@testdb=#* SELECT pg_advisory_xact_lock(1);
 pg_advisory_xact_lock 
-----------------------
(1 row)
Time: 2.449 ms
[local]:5432 pg12@testdb=#* -- Some work here
[local]:5432 pg12@testdb=#*

session 2

[local]:5432 pg12@testdb=# -- Transaction 2
[local]:5432 pg12@testdb=# BEGIN;
BEGIN
Time: 0.468 ms
[local]:5432 pg12@testdb=#* 
[local]:5432 pg12@testdb=#* SELECT pg_advisory_xact_lock(1);

session 3

[local]:5432 pg12@testdb=# SELECT * FROM pg_locks where pid <> pg_backend_pid();
  locktype  | database | relation | page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | pid  |     mode      | granted | fastpath 
------------+----------+----------+------+-------+------------+---------------+---------+-------+----------+--------------------+------+---------------+---------+----------
 virtualxid |          |          |      |       | 5/4        |               |         |       |          | 5/4                | 1789 | ExclusiveLock | t       | t
 virtualxid |          |          |      |       | 4/13       |               |         |       |          | 4/13               | 1787 | ExclusiveLock | t       | t
 advisory   |    16384 |          |      |       |            |               |       0 |     1 |        1 | 5/4                | 1789 | ExclusiveLock | t       | f
 advisory   |    16384 |          |      |       |            |               |       0 |     1 |        1 | 4/13               | 1787 | ExclusiveLock | f       | f
(4 rows)
Time: 3.748 ms

通過查詢pg_locks,可以看到pid 1789持有advisory lock(granted = t),而pid 1787在等待該鎖(granted = f).

到此,關于“PostgreSQL Locks的基礎知識有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!


文章名稱:PostgreSQLLocks的基礎知識有哪些-創新互聯
文章來源:http://www.xueling.net.cn/article/djhgpj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产伦一区二区三区久久 | 日韩视频观看 | 亚洲香蕉成人AV网站在线观看 | 天天躁夜夜躁狠狠久久成人网 | 曰韩中文字幕 | 最新日韩在线观看视频 | 99久久久久成人国产免费 | 国产乱码一区二区三区在线观看 | 男女久久久 | 特级淫片aaaaaaa级附近的 | 亚洲日本乱码一区两区在线观看 | 作爱视频在线免费观看 | 亚洲欧洲国产一区 | 国产伦久视频免费观看视频 | 高清无码视频直接看 | 无遮挡裸体免费视频尤物 | 亚洲福利中文字幕 | 在线观看成人无码中文av天堂 | 伊人中文 | av视频在线 | 日本视频网站WWW色高清免费 | 国内精品九九久久久精品 | 久久精品日日躁夜夜躁 | 国产精品十八禁一区二区三区 | 2018高清国产一区二区三区 | 亚洲国产精华液网站w | 夜夜爽www一区二区三区精品 | 亚洲经典视频在线观看 | av网免费观看 | 免费看片A片人人免费 | 91热视频在线 | 亚洲欧洲精品成人久久奇米网 | 极品老师腿张开粉嫩小泬 | 久久免费看少妇高潮特黄WWW | 亚洲国产爱 | 亚洲狠狠色综合蜜桃 | 蜜桃AV少妇久久久久久高潮不断 | 日本欧美在线播放 | 久久另类ts人妖一区二区 | 欧美黑人巨大videos精品 | 亚洲av无码之国产精品网址蜜芽 |