日期:2014-05-16  浏览次数:20488 次

参数List size过大查询,如何提高效率

参数 list 里面装了1000+的 id (字段有索引)?然后根据这个list去数据库(oracle)中查询,如何提高效率呢??

?

数据库新建临时表,查询前插入,使用表关联查询,查询完成后清除临时表数据.其中临时表可以使用数据库自动的事务管理实现

?

如果数据库中的表的数据过大的话首先加入索引,然后做一下表分析这样可以提高速度,另外针对楼主提出的问题也可以采取将List中的ID取出来用exists去查询数据库,数据库端的查询远比程序中的循环查询快很多的。

?

如果是利用高级程序语言里数据库编程技术来实现的话,而非在DBMS下直接操作,我觉得可以采用多线程来解决!同时,如果针对海量数据的话,MapReduce将是不错的选择吧!

?

首先你要做同步还是异步
如果是要实时结果的,你不需要对所有的1000个结果进行查询。?
第一种:你可以先取前100个id进行查询。用户只要看前100跳记录就好了。?

第二种:把1000个id分组10组,然后启10个线程,每组用一个线程进行查询。然后把查询结果进行汇总。排序。

?