数据量过多,jdbc中的in查询失败

这个问题是最近工作中遇到的,希望看到的同仁可以多发表下见解,互相学习一下,

原本是要实现根据一个list里面的挂号记录id查询收费的项目,临时加的一个小变动,于是乎,我想着直接jdbctempate将in后面的参数拼进去吧别搞一个服务了,整接口那么繁琐,而后证明我毕竟还是too young ,问了下同事,医院的挂号记录一天能产生一两百条,查一个月的数据保守估计得4000+,怎么办,发现其实大数据的查询还是不要拼sql或者预编译sql,这样反而会显得更慢,这主要是oracle考虑性能问题做的限制,关联相关业务表去直接查询,以下是简单例子

例如:select  a from table_1 where a.2id in (符合业务规则table_2的id),

改成

select  a from table_1 where a.2id in (select id from table_2 where .... )

另外相关字段加上索引,改成exists版本效果会更佳,不知各位同仁还有什么好的优化方法 ,虚心学习之!

原文地址:https://www.cnblogs.com/wujunjie/p/5670551.html