mysql - 如何使用 InnoDB 引擎减少此查询的查询时间

标签 mysql sql optimization query-optimization

我正在尝试优化此查询。现在需要 28 秒。

我的查询中曾经缺少

AS。添加后,查询时间下降20%

SELECT
    g.id,
    g.adresid,
    g.senaryoid,
    g.olayid,
    g.gonderilecegitarih
FROM
    (
        SELECT
            adresid
        FROM
            expose2.800_emsenaryolar_emgidenbulten
        WHERE
            olayid = '3320'
    ) AS s
RIGHT JOIN expose2.800_emsenaryolar_emgidenbulten AS g ON s.adresid = g.adresid
WHERE
    s.adresid IS NULL
AND g.olayid = '2784'
AND g.durum = '1'
AND g.gonderilecegitarih < DATE_SUB(
    '2015-05-13 15:40:15',
    INTERVAL 1 DAY
)

最佳答案

如果您在子查询中使用s.adresid IS NULL条件,它将比更多行更快地连接...

SELECT
    g.id,
    g.adresid,
    g.senaryoid,
    g.olayid,
    g.gonderilecegitarih
FROM (
        SELECT adresid FROM expose2.800_emsenaryolar_emgidenbulten WHERE olayid = '3320' and  s.adresid IS NULL
    ) AS s
RIGHT JOIN expose2.800_emsenaryolar_emgidenbulten AS g ON s.adresid = g.adresid

AND g.olayid = '2784'
AND g.durum = '1'
AND g.gonderilecegitarih < DATE_SUB(
    '2015-05-13 15:40:15',
    INTERVAL 1 DAY
)

该查询仍然使用自连接进行优化。

关于mysql - 如何使用 InnoDB 引擎减少此查询的查询时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30215810/

相关文章:

mysql - 在后端阻止连续的 SQL 请求

mysql - mysql中的分组依据遵循顺序

mysql - oracle表间关系的不同实现方式

带条件的 R 累积和

mysql - cakephp 将自定义查询转换为 cakephp 查询

mysql - 当某些id的日期相同但时间不同时创建mysql查询

php - 我应该如何查询 MySQL 以及如何缓存 MySQL 的结果?

mysql - 解释一下这两个SQL查询之间的区别?

mysql - 简单的 SQL 查询工作台

php - 与默认的 Ubuntu 构建相比,为什么重新编译的 PHP 使用大量 CPU?