小白请教一个数据库查询的小问题

我用的框架是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