如何改进大型mysql数据库的“WHERE NOT EXIST”查询

时间:2014-11-22 10:44:40

标签: mysql database pdo

我编写的这个查询非常完美,但是自从数据库开始增长以来,这个查询变得越来越慢,直到现在几乎需要54秒才能执行。有没有办法改进这个查询,使其更快,因为我不希望这54更长。

SELECT 
        twitter.user_id AS id
        FROM twitter
        WHERE NOT EXISTS
                (
                SELECT  stats.id
                FROM    stats
                WHERE   stats.user_id = twitter.user_id AND stats.created_on >= now() - INTERVAL 1 DAY
                )
        GROUP BY twitter.id
        LIMIT 0 , 300

1 个答案:

答案 0 :(得分:0)

我猜你的字段缺少索引,所以我建议在连接列和日期字段

时添加索引

所以你可能需要在

上添加索引
stats.user_id
twitter.user_id
stats.created_on

您可以使用explain查看查询的运行方式,它会告诉您查询中使用了哪些索引。