我做一個簡單的插入行中某事務的,這裏是我跟着插入內幕交易造成獨佔鎖
- 開始的步驟;
- 插入數據
- 查詢pg_locks對
的pg_locks對現在說有一個排他鎖在下面的圖片。
根據文檔,獨佔鎖只能通過刷新實體化視圖併發獲取。
我在這裏做錯了什麼?
使用pgsql的 - 插入前9.4
PG鎖表有四排,這是由於查詢pg_locks對錶本身在兩個單獨的會話。
插入後,它有兩個額外的行,其中一個是實際事務ID本身是一個排他鎖,另一個是對關係RowExclusiveLock
我做一個簡單的插入行中某事務的,這裏是我跟着插入內幕交易造成獨佔鎖
的pg_locks對現在說有一個排他鎖在下面的圖片。
根據文檔,獨佔鎖只能通過刷新實體化視圖併發獲取。
我在這裏做錯了什麼?
使用pgsql的 - 插入前9.4
PG鎖表有四排,這是由於查詢pg_locks對錶本身在兩個單獨的會話。
插入後,它有兩個額外的行,其中一個是實際事務ID本身是一個排他鎖,另一個是對關係RowExclusiveLock
這些都是對事務ID鎖。這完全正常。
目的是另一個事務可以嘗試獲取此事務上的鎖,導致它在繼續之前等待第一個事務提交或回滾(並因此釋放自己的鎖)。
你只需要擔心關係鎖。
哦..我明白了......所以排他鎖是用於事務處理的,而關係是實際的RowExclusiveLock –
你看過所有這些列的含義嗎? http://www.postgresql.org/docs/9.2/static/view-pg-locks.html提示:這裏的排他鎖是什麼? –
我知道它只被保留一行,但在這種情況下,ExclusiveLock和RowExclusiveLock之間有什麼區別。 –
據我所知,'ExclusiveLock'不是用於關係(並且請將樣例數據像*格式*文本那樣發佈,而不是截圖) –