所以假设我正在构建这个联系人管理系统。有一个 USER 表和一个 CONTACT_INFO 表。对于每个用户,我可以有零个或多个 CONTACT_INFO 记录。按照我定义的方式,我在我的 CONTACT_INFO 表中设置了一个外键来指向相关的 USER 记录。
我想搜索所有没有 CONTACT_INFO 记录的 USER 记录。
我希望这可以做到:
SELECT * FROM user u WHERE u.user_id NOT IN (SELECT DISTINCT c.user_id FROM CONTACT_INFO);
我担心的是随着表的增长,这个查询的性能会显着下降。
我正在玩的一个想法是在 USER 表中添加一列,说明它是否有任何 CONTACT_INFO 记录。另外,我想知道,如果在将任何记录插入 CONTACT_INFO 时,DBMS 必须验证该记录是否存在,它已经在访问该记录以进行验证,因此在我更新 CONTACT_INFO 记录时更新它不应该是昂贵的,性能方面的。
与往常一样,我们感谢您的反馈。