【问题标题】:How can I keep queries like this out of mysql_slow.log?如何将这样的查询保留在 mysql_slow.log 之外?
【发布时间】:2011-01-21 21:53:43
【问题描述】:

我有以下问题需要帮助。

SELECT a.artist, a.facepic
FROM artists_vs AS v, artists AS a 
WHERE v.genreid =0 
AND (v.artistid1 = a.artistid OR v.artistid2 = a.artistid)
ORDER BY v.bid DESC 
LIMIT 20

查询中的所有字段都已编入索引,但是当我运行解释时,我得到以下信息:

1   SIMPLE  v   ref genreid,artistid1,artistid2 genreid 4   const   15  Using temporary; Using filesort
1   SIMPLE  a   ALL PRIMARY NULL    NULL    NULL    18165   Range checked for each record (index map: 0x1)

我需要在 my.cnf 中启用 log-queries-not-using-indexes

谁能建议我如何重写此查询以使其不受慢日志的影响?

【问题讨论】:

    标签: mysql mysql-management mysqldumpslow


    【解决方案1】:

    你可以试试这样的:

    SELECT 
        a.artist, 
        a.facepic,
        V.bid
    FROM artists_vs AS v
    inner join artists as a on v.artistid1 = a.artistid
    WHERE v.genreid = 0 
    union
    SELECT 
        a.artist, 
        a.facepic,
        v.bid
    FROM artists_vs AS v
    inner join artists as a on v.artistid2 = a.artistid
    WHERE v.genreid = 0 
    ORDER BY bid DESC 
    LIMIT 20
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-31
      • 2016-09-22
      • 2017-02-17
      • 1970-01-01
      • 2021-12-24
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多