是否能够更好地执行以便将this WHERE IN分解为多个选项,例如
SELECT aField FROM aTable WHERE objectId IN (0,1,2...999) * many
与拥有巨大的WHERE objectId IN(700k项目)相比。
编辑---
我在内存中的objectIds列表,它可以多达700k项。它们可以是连续的,但不太可能。 也不确定where子句(在本例中为objectId)中的字段是否已编入索引。
允许我仅传递WHERE CLAUSE的第三方应用程序当前正在使用Oracle DB。它还有连接到其他类型DB的选项,但我正在开发的插件的用户群主要针对Oracle DB。
答案 0 :(得分:0)
它更好阅读但更难调试,内部有趣的是哪一个更快,通常我会说具有ObjectID列表的选项,但是传输如此大量的数据也会花费一些性能,你可以根据我们的DBMS,使用Explain计划比较两种变体。
答案 1 :(得分:0)
多达70万件物品?如果是这种情况,我会认真考虑将这些存储在一个单独的表中并使用JOIN
代替 - 如果objectId是索引的外键,那将会表现得更好。