2010-11-05 27 views
2

現在我們使用TRUNCATE來清除postgres(隔離測試運行)中的798個表格的內容。我們儘可能使用交易。但是,在不可能的地方,我們希望以最快的方式重置數據庫的狀態。清除許多表格中內容的最快方法

我們正在努力只在已修改的表上調用truncate(對於任何給定的測試,只有少數798表將被修改)。

什麼是從許多PostgreSQL表中刪除所有數據的最快方法?

+0

TRUNCATE應該非常快。你沒看到它跑得快嗎? – Kuberchaun 2010-11-05 15:26:26

回答

4

兩件事情浮現在腦海中:

  1. 設置清潔DB作爲模板,每次測試之前CREATEDB從它的副本。
  2. 將乾淨數據庫設置爲默認模式,但在另一模式(SET search_path TO %s)中運行TransactionTests。