我用的框架是springMVC+hibernate 数据库为mysql
例如我手上有1000条数据,数据库中有50万条数据.
其中要把手上1000条数据中的id拿来判断数据库中是否存在.
如果存在则返回,不存在则不管.
请问下java代码该怎么写执行效率才比较高一点.
Select id From TABLE Where Id In (List)
出来的LIst Ids 中就是存在的Id.
需考虑效率问题
数据库新语法:merge into when matched then 存在数据做更新操作 when not matched then 不存在做插入操作。
数据库新语法:merge into when matched then 存在数据做更新操作 when not matched then 不存在做插入操作。
先将所有id一次性传入DAO层,打开session,自己写hql语句进行批量查询,全部结束再关闭session,查询结果再一次性返回给上一层。
select * from 表名 where ID EXISTS (1000条ID 逗号分隔)
select if from 表 where id in (list集合)
select id from 表名 where id in (list)
Java不懂,表示要提高性能,开新线程去查
SELECT id FROM TABLE WHERE id IN (LIST) LIMIT 1
我觉得你可以将楼上的两条建议合起来,第一使用多线程,第二使用exists 代替in