mysql - 有什么办法可以加快这个查询吗?

标签 mysql sql database

我有两个表,一个是另一个的副本。 (我必须删除父项中不再存在的记录)。运行此查询有效,但需要大约 1 分钟才能完成。我知道 NOT EXISTS 更快,因为我不会为每一行运行子查询,但不会返回任何结果。

SELECT mlscopy.listing_listnum 
FROM mlscopy 
WHERE mlscopy.listing_listnum 
NOT IN (SELECT mls_cvrmls.listing_listnum FROM mls_cvrmls)

我会澄清一下,这里的问题是父项随时间变化,我必须从子项中删除/添加记录。所以我坚持从父级中不存在 listing_listnum 的子级中删除。

这是不存在的查询

SELECT mlscopy.listing_listnum 
FROM mlscopy 
WHERE 
NOT EXISTS (SELECT mls_cvrmls.listing_listnum FROM mls_cvrmls)

想通了

SELECT mlscopy.listing_listnum
FROM mlscopy 
WHERE NOT EXISTS (
SELECT mls_cvrmls.listing_listnum 
FROM mls_cvrmls
WHERE mlscopy.listing_listnum = mls_cvrmls.listing_listnum
)

最佳答案

试试这个变体,看看它是否更好:

SELECT mlscopy.listing_listnum 
    FROM mlscopy 
        LEFT JOIN mls_cvrmls
            ON mlscopy.listing_listnum = mls_cvrmls.listing_listnum
    WHERE mls_cvrmls.listing_listnum IS NULL

关于mysql - 有什么办法可以加快这个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886133/

相关文章:

Java 到 MySQL : How to update row with a value from variable?

database - 数据库设计 : Sort Order for Lookup Tables

mysql - 如何只显示一张表的id而不与其他表重复?

java - 将查询的进度绑定(bind)到 ProgressBar 的 ProgressProperty 以通知用户 javaFX 中的下载和上传时间?

mysql: `my.cnf` 中的未知变量

android - 为android选择一个数据库

php - 如何使用php在数据库中插入动态添加的表单字段

mysql - 查询 MySQL 期间失去连接

mysql - sql计算我没有解决

c# - 使用 c# asp.net 从 sql 下载 blob 文件并向用户显示保存对话框