1. 程式人生 > >pg數據庫數據表異常掛起

pg數據庫數據表異常掛起

對數 details pgadmin 希望 一個 進行 nbsp 增刪查改 選中

pg數據庫即是PostgreSQL數據庫。

前幾天在一個Java項目中,出現運行Java程序後,pg數據庫的數據表異常掛起。而且是在某臺電腦上出現的,重裝數據庫也沒用,其它電腦未能復現,是個很奇怪的現象。

異常掛起的主要表現是:

1、使用pgAdmin選中相應的表,會導致pgAdmin未響應,並且很長時間都無法恢復。

2、使用pgAdmin直接sql命令增刪查改都無法執行,執行所花時間從幾十毫秒一直增長到幾分鐘,預計會一直增長下去。

3、只有重啟PostgreSQL服務才能讓出現異常的數據表恢復正常,恢復到既能選中,又能通過sql語句增刪改查。

最終經過排查,確定出是因為Java中使用truncate命令對數據表進行清表操作導致了數據表異常掛起,之後把truncate命令換成了delete命令則一切正常。

在排查過程中,在pgAdmin中使用truncate命令直接清理會出現異常的表,也能復現前面的問題,而delete正常使用。

下面附上truncate、delete以及drop的區別:drop、truncate和delete的區別

至於這個特例情況下,truncate為什麽會導致數據表掛起,我一直沒想明白,希望有知道的人可以幫忙指點迷津。

pg數據庫數據表異常掛起