0
問題:有超過9000行的表。它必須清潔,但沒有任何鎖(表在積極使用)。我試圖使用pg_advisory_unlock_all,但沒有結果。postgresql:刪除所有鎖
問題:有超過9000行的表。它必須清潔,但沒有任何鎖(表在積極使用)。我試圖使用pg_advisory_unlock_all,但沒有結果。postgresql:刪除所有鎖
如果不鎖定要刪除的行,無法從表中刪除數據。
只要併發訪問不嘗試修改這些行或使用id = '1'
插入新行,這是不應該成爲問題的,因爲編寫者在PostgreSQL中從不阻止讀取器,反之亦然。
如果併發事務不斷修改要刪除的行,這有點好笑(爲什麼要刪除所需的數據?)。您必須等待排他鎖,並且您可能會遇到死鎖。在這種情況下,最好在開始之前將整個表與LOCK
語句鎖定。從小表中刪除應該只需要很短的時間。
pg_advisory_unlock將發佈**以前獲得的**獨家諮詢鎖 – McNets
是否有可能關閉它們,或者我必須設置正確的鎖? –
https://www.postgresql.org/docs/9.4/static/explicit-locking.html – McNets