Postgresql

如何從表中刪除數百萬條記錄

  • February 13, 2018

我正在使用 postgree 9.4 數據庫,我有一個snapshots包含 700+ 百萬行的表,我想刪除大約 900 萬行。我嘗試了不同的查詢來刪除記錄,但沒有成功。

查詢以刪除特定攝影機的所有記錄:

DELETE FROM snapshots where camera_id = 1248

另一個刪除重新編碼的查詢snapshot_id

DELETE from snapshots where snapshot_id >= '1248_201511010000000' and <= '1248_20151130235959000'

建議我從 700 多條記錄中刪除記錄的最快方法是什麼。

除了將操作分成塊之外,我不認為有靈丹妙藥的方法。這個答案可能會派上用場

您可以使用類似pg_repack的方法來保持表由 聚集camera_id,或者snapshot_id任何一個負責的人都更有問題。這將使將行標記為死的操作更快。使用它可能會更好,snapshot_id 特別是如果它是按時間順序排列的,並且您沒有插入舊快照。

在其他操作中,您可以使用索引。

引用自:https://dba.stackexchange.com/questions/124235