【发布时间】:2013-08-05 12:41:07
【问题描述】:
我有一个包含 70 个元素的列表。
例如:
List<Long> dbList = new ArrayList<Long>();
dbList 有 70 条记录。如果我将所有记录发送到 MySql 中的查询,则需要很长时间。所以现在我想每次发送 10 个元素到数据库查询。所以我需要以 10 的间隔迭代列表。我该怎么做?这是避免长时间使用IN的好方法吗?
SQL 查询
select model.boothId, model.panchayat.panchayatId
from Table1 model
where model.panchayat.panchayatId in(:locationValues)
and model.publicationDate.publicationDateId in (:publicationDateIdsList)
and model.constituency.id = :id group by model.panchayat.panchayatId
提前谢谢...
【问题讨论】:
-
你能显示你的sql吗?
-
70 条记录?很长时间?这些是什么?电影文件?
-
没有没有。只是 1,2,3,5,.....70
-
通常一次检索 70 个对象比每次 7 次 10 个对象更快。您可以及时获得时间的唯一情况 - 如果您的对象太大并且将它们全部选择在一起会导致内存交换,但我认为情况并非如此。所以总的来说 - 你应该只在两种情况下这样想:
-
@Dmitry 你能解释清楚吗?这不是正确的方式