我想最有效地管理數據庫表和擺脫,將不能被訪問舊條目的舊的所有條目。是的,他們可能很容易堅持多年,但我只想擺脫它們。我可能每個月都會這樣做一次。將要保存的條目複製到新表格中,然後簡單地刪除舊錶格會更有效率嗎?或者應該在我設置的閾值後手動刪除每個條目。最有效的方法,以定期刪除數據庫一個多月
我使用MySQL使用JPA/JPQL JEE6與實體註釋和Java持久性管理。
謝謝
我想最有效地管理數據庫表和擺脫,將不能被訪問舊條目的舊的所有條目。是的,他們可能很容易堅持多年,但我只想擺脫它們。我可能每個月都會這樣做一次。將要保存的條目複製到新表格中,然後簡單地刪除舊錶格會更有效率嗎?或者應該在我設置的閾值後手動刪除每個條目。最有效的方法,以定期刪除數據庫一個多月
我使用MySQL使用JPA/JPQL JEE6與實體註釋和Java持久性管理。
謝謝
單個刪除查詢將是最有效的解決方案。從一個數據庫到另一個
複製數據可能會很長,如果你有大量的數據,以保持。這意味着您必須使用單個查詢檢索所有數據(如果要批量檢索,則爲多個數據),並在其他數據庫中發出大量插入語句。
使用JPQL,您可以發出一個查詢,刪除所有舊的語句,像
DELETE FROM Entity e WHERE e.date = ?
這將轉換爲一個SQL查詢,數據庫將刪除所有不需要的記錄的照顧。
另一種解決方案是range or list PARTITIONING設計表,然後你可以使用ALTER TABLE來刪除或截斷舊分區。
這比使用DELETE更快,但它可能會變得複雜表的其他用途。
如果我想保持者是說整個表的2%。把它們複製到一個新表格然後刪除舊錶格會更有意義嗎? – Randnum
在http://stackoverflow.com/questions/8362362/how-to-continuously-remove-anything-older-than-the-newst-10-entries-of-a-mysqlda中接受的答案有什麼問題? –
這些不是如何刪除項目的答案。答覆建議永不刪除,這不是真正的問題答案。提到刪除的一個答覆承認它效率不高。 – Randnum