有没有更有效的方式来跟踪没有孩子的父母记录?

不要惊慌

我正在处理的应用程序的一部分是“待办事项列表”,其中显示了用户需要处理的记录。需要使记录显示在此列表中的一组条件之一是另一个表中没有相应的记录。

到目前为止,从我的阅读和实验来看,有三种潜在的方法可以实现此目的:

SELECT table1.id FROM table1 
LEFT JOIN table2 ON table1.id = table2.t1_id 
WHERE table2.t1_id IS NULL;

SELECT table1.id FROM table1 
WHERE NOT EXISTS (SELECT null FROM table2 
WHERE table2.t1_id = table1.id);

SELECT table1.id FROM table1
WHERE table1.id NOT IN (SELECT table2.t1_id FROM table2);

我看到了各种各样的问题和答案,其中哪一个更有效,并且根据我为所讨论的两个表设置索引的方式,我可以稍作更改,尽管LEFT JOIN似乎是最好的。但是我认为对于这样的查询来说,表太大了,无法像我需要的那样快。

我的问题是,还有其他方法可以更有效地完成此任务吗?到目前为止,我想出的唯一其他解决方案是创建另一个表,该表将table1_id映射到零个或多个table2_ids,并在表2中没有对应记录的情况下使用null值。在table2_id上有一个索引,我需要的查找非常快;不幸的是,我认为这种解决方案将更加难以管理。这是一个合理的方法吗?

品尼

在table2中查找所有不匹配的记录的唯一方法是比LEFT JOIN更快的方法是将行的“存在”缓存在某处。您提到了用于此目的的辅助表,尽管在table1上添加索引的布尔值列肯定会更快。

这种方法的问题与缓存时经常发生的问题相同,即:

  • 您需要一种方法来确保此缓存的完整性,并...
  • 无论您使用哪种方法来确保这种完整性(触发都是可能的选择),都将需要一些开销处理,从而损害table2上INSERT / UPDATE / DELETE的性能。

如果这些都不是您的问题,或者比使用LEFT JOIN的问题少,那么请务必-继续执行此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有更有效的方式来跟踪没有孩子的父母记录?

来自分类Dev

有没有更有效的方式来编写使用DateTime值的IF语句?

来自分类Dev

有没有更有效的方式来编写此乘法表?

来自分类Dev

有没有更有效的方式来编写此sql查询?

来自分类Dev

有没有更有效的方式来编写合并函数?

来自分类Dev

有没有更有效的实施?

来自分类Dev

有没有更有效的方法来运行多个UPDATE SQL语句

来自分类Dev

有没有更有效的方法来在servlet中输出html?

来自分类Dev

有没有更有效的方法来按数组分组?

来自分类Dev

有没有更有效的方法来执行此嵌套SQL查询?

来自分类Dev

有没有更有效的方法来遍历数据帧?

来自分类Dev

有没有更有效的方法来编码此“ 2 Sum”问题

来自分类Dev

有没有更有效的方法来重构Ruby上哈希的迭代?

来自分类Dev

有没有更快,更有效的方法来保存python字典?

来自分类Dev

有没有更有效的方法来包装浮点数?

来自分类Dev

有没有更有效的方法来存储关键字参数?

来自分类Dev

有没有更有效的方法来按数组分组?

来自分类Dev

有没有更有效的方法来运行多个UPDATE SQL语句

来自分类Dev

有没有更有效的方法来运行此功能?

来自分类Dev

有没有更有效的方法来创建分组列表

来自分类Dev

Python:有没有更有效的方法来转换月份的 int 值?

来自分类Dev

有没有更有效的方法来编写这段代码?

来自分类Dev

有没有更有效的方式编写此递归过程?

来自分类Dev

有没有更有效的方式从Web读取数据?

来自分类Dev

有没有更有效的方式来处理重复功能?

来自分类Dev

有没有更有效的方式对此进行编码?

来自分类Dev

在这种特定情况下,有没有更有效的方式来编写我的过滤器?

来自分类Dev

有没有一种有效的方式来分发没有注释的bean?

来自分类Dev

有没有更有效(更乏味)的方法来做到这一点?

Related 相关文章

  1. 1

    有没有更有效的方式来跟踪没有孩子的父母记录?

  2. 2

    有没有更有效的方式来编写使用DateTime值的IF语句?

  3. 3

    有没有更有效的方式来编写此乘法表?

  4. 4

    有没有更有效的方式来编写此sql查询?

  5. 5

    有没有更有效的方式来编写合并函数?

  6. 6

    有没有更有效的实施?

  7. 7

    有没有更有效的方法来运行多个UPDATE SQL语句

  8. 8

    有没有更有效的方法来在servlet中输出html?

  9. 9

    有没有更有效的方法来按数组分组?

  10. 10

    有没有更有效的方法来执行此嵌套SQL查询?

  11. 11

    有没有更有效的方法来遍历数据帧?

  12. 12

    有没有更有效的方法来编码此“ 2 Sum”问题

  13. 13

    有没有更有效的方法来重构Ruby上哈希的迭代?

  14. 14

    有没有更快,更有效的方法来保存python字典?

  15. 15

    有没有更有效的方法来包装浮点数?

  16. 16

    有没有更有效的方法来存储关键字参数?

  17. 17

    有没有更有效的方法来按数组分组?

  18. 18

    有没有更有效的方法来运行多个UPDATE SQL语句

  19. 19

    有没有更有效的方法来运行此功能?

  20. 20

    有没有更有效的方法来创建分组列表

  21. 21

    Python:有没有更有效的方法来转换月份的 int 值?

  22. 22

    有没有更有效的方法来编写这段代码?

  23. 23

    有没有更有效的方式编写此递归过程?

  24. 24

    有没有更有效的方式从Web读取数据?

  25. 25

    有没有更有效的方式来处理重复功能?

  26. 26

    有没有更有效的方式对此进行编码?

  27. 27

    在这种特定情况下,有没有更有效的方式来编写我的过滤器?

  28. 28

    有没有一种有效的方式来分发没有注释的bean?

  29. 29

    有没有更有效(更乏味)的方法来做到这一点?

热门标签

归档