2013-01-24 63 views
0

我有一個組域對象,其中包含一組用戶域對象 該組對象有可能擁有200,000個用戶。Grails - 緩慢刪除

雖然測試此,我注意到,刪除該組groupModel.delete(flust:真),甚至刪除所有用戶羣對象groupModel.users.clear()時,有20萬個用戶是非常緩慢的 組上域對象有級聯:「全刪除,孤兒」爲用戶設置

有沒有人對如何這兩種刪除操作可以加快

+1

這對你來說「慢」是什麼?請分享一些數字,否則很難用這個來幫助你。此外:哪個是DBMS?你有正確的索引嗎? – lucke84

+0

對不起lucke84 - 我的監督。大約需要300秒才能刪除200,000條記錄。 – Damien

+1

根本不用擔心。無論如何,請按照Gregg的建議,讓我們知道它是如何發展的。 :) – lucke84

回答

5

任何建議,你不希望在每個刪除刷新,那會非常慢。把刪除放在一個服務/事務中,然後執行groupModel.delete()。請記住,刪除200,000條記錄加上所有級聯將花費比說100條記錄更長的時間。但是如果你讓Hibernate擔心沖洗而不是強迫它,它會更快。

+0

感謝Gregg,這很有道理,我會嘗試一下,讓你知道我是如何得到的 – Damien

+1

@Damo看看http://naleid.com/blog/2009/10/01/batch-import-性能與-的Grails和MySQL的/。它應該具有類似的刪除含義。 –

+0

@Gregg,謝謝你的建議 – Damien