Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 流式连接多个结果集_Java_Sql_Resultset - Fatal编程技术网

Java 流式连接多个结果集

Java 流式连接多个结果集,java,sql,resultset,Java,Sql,Resultset,我对sql性能有一个问题,我的数据库太多了,所以查询时间太长了 SELECT * FROM A JOIN B ON A.id = B.id where ... 所以我改成 SELECT * FROM A where A= a... SELECT * FROM B where B= b... 我从这里的2个查询中得到了2个结果集。 有人能帮助我如何以最好的性能加入2个结果集吗。 我必须拆分为2个查询,因为此数据库有10 mil条记录。您不太可能编写比数据库中的联接实现更好的联接。如果您需要帮助

我对sql性能有一个问题,我的数据库太多了,所以查询时间太长了

SELECT * FROM A JOIN B ON A.id = B.id where ...
所以我改成

SELECT * FROM A where A= a...
SELECT * FROM B where B= b...
我从这里的2个查询中得到了2个结果集。 有人能帮助我如何以最好的性能加入2个结果集吗。
我必须拆分为2个查询,因为此数据库有10 mil条记录。

您不太可能编写比数据库中的联接实现更好的联接。如果您需要帮助调整SQL查询,您应该询问,在哪里可以询问。我可以将2个结果集解析为hashmap并使用键联接,O(n)将为2n,优于联接sql n^2SQL引擎可以进行哈希联接、合并联接、嵌套循环联接等,而且它们可能也会得到更好的优化。您所需要的只是能够调优SQL。我使用的是mysql,我知道,mysql不支持哈希连接:(为什么会有不同呢?我不认为这会带来巨大的性能改进,但当我们加入小马厩时,我认为这可能会带来更好的性能。因为在这里,我们执行查询,分别使用每个表中的where子句选择唯一相关的行,然后执行join。这比join好先把所有的行放在前面,用where子句过滤掉。如果我错了,请纠正我。
Select col1, col2 ...
from 
    ( 
    -- first query
    ) as tab1 
join 
    (
    -- second query
    ) as tab2 on tab1.colx = tab2.coly