gpt4 book ai didi

java - 优化Sql查询以合并两个表?

转载 作者:行者123 更新时间:2023-11-30 07:58:16 24 4
gpt4 key购买 nike

嗨,我的项目遇到了这个实时问题,假设我有两个表

表学生和表类(class)出勤历史,(名称为虚构)

STUDENT
NAME, ID, LAST_TIME_SEEN_IN_COLEGE,


CLASSHISTORY
CLASSNAME, ID, STUDENT_ID, LAST_TIME_PRESENT,

“现在我想删除student.last_time_seen_in_colege > classHistory.last_time_present的所有学生列表”

由于这两个表都将有数百万行,所以我想到分批进行,一次 50 个批处理,否则表将锁定很长一段时间,这两个表非常活跃表。

这两个表都会有很多操作,所以我考虑批量使用。

加入或子查询哪个最好?或者我可以将整个表存储在 JAVA 内存中并进行处理吗?请一些专家建议我希望它是最好的?

我知道我们可以使用内连接,但我想知道有效的方法,如果我说每次进行 50 个批处理的内连接,那么内连接每次都会搜索整个表。

最佳答案

delete from student where id in ( select id from student s where exists (select null from classhistory c where s.last_time_seen_in_college > c.last_time_present )

上面的查询在这种情况下有效。

关于询问汤姆何时使用联接以及何时进行子查询的说明 https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:66812779016023

在这种情况下,java不是一个选项,因为您提到表将有数百万行来选择这数百万行并将它们存储到结果集中,然后处理它们将花费比我们想象的更多的时间。

关于java - 优化Sql查询以合并两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32333859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com