项目需要在内部查询一个可能有1W~10w的数据然后进行操作,目前是用循环每次查100条来实现的。现在就想讨教一下,各位在实现这种逻辑的时候,你们的做法会是什么。
认证0级讲师
1.首先採用直接寫入SQL的方式,而不是像hibernate用java物件來拼裝SQL,或是像MyBatis中,使用Example來查詢,建議直接寫SQL。 2。看一下你目前的業務邏輯,是否涉及到有事務的操作,如果包含有事務的操作,建議分批次處理,你可以在controller層做出控制,分頁來處理資料。
就是單純的查詢還是還是查詢出來以後還要修改呢? 單查詢我覺得想怎麼玩就怎麼玩,控制一下記憶體就好。 如果需要修改的話參考樓上。
如果可以分頁最好分頁,如果查詢出來還有做操作的話可以使用 jdk8 中的 stream。
有點類似批次了。最好一次查出主鍵,然後多執行緒分批處理資料
1.首先採用直接寫入SQL的方式,而不是像hibernate用java物件來拼裝SQL,或是像MyBatis中,使用Example來查詢,建議直接寫SQL。
2。看一下你目前的業務邏輯,是否涉及到有事務的操作,如果包含有事務的操作,建議分批次處理,你可以在controller層做出控制,分頁來處理資料。
就是單純的查詢還是還是查詢出來以後還要修改呢? 單查詢我覺得想怎麼玩就怎麼玩,控制一下記憶體就好。 如果需要修改的話參考樓上。
如果可以分頁最好分頁,如果查詢出來還有做操作的話可以使用 jdk8 中的 stream。
有點類似批次了。最好一次查出主鍵,然後多執行緒分批處理資料