需要帮助重写慢速mysql查询吗

需要帮助重写慢速mysql查询吗,mysql,Mysql,我有两个缓慢的MySQL查询: SELECT count(N) as c, mW as move, move.fenW as fen FROM move,opening,book WHERE move.fenW LIKE BINARY ‘S’ AND move.oid=opening.id AND opening.bid=book.bid AND book.is_deleted=N AND opening.deleted=N AND mW!=‘S’ AND book.published=N

我有两个缓慢的MySQL查询:

SELECT count(N) as c, mW as move, move.fenW as fen FROM move,opening,book  WHERE move.fenW LIKE BINARY ‘S’  AND move.oid=opening.id AND opening.bid=book.bid AND book.is_deleted=N AND opening.deleted=N AND mW!=‘S’ AND book.published=N GROUP BY mW ORDER BY c DESC


这些查询导致网站加载速度显著延迟。我正在寻找如何改进/重写这些查询的建议,以提高网站的加载速度和性能。

类似的操作员可能会减慢此查询。让我们先筛选您的表,然后再加入其他表

SELECT count(N) as c
    , m.mB as move
    , m.fenB as fen 
FROM 
    (SELECT mB, fenB, oid FROM move WHERE m.fenB LIKE BINARY ‘S’ AND mB!=‘S’) m
INNER JOIN opening o on m.oid = o.id AND o.deleted=N    
INNER JOIN book  b on o.bid=b.bid AND b.is_deleted=N  AND b.published=N 
GROUP BY m.mB 
ORDER BY c DESC

非常感谢。我如何衡量mysql中原始查询和新查询的查询性能?Deleted=N?当然不是。你能详细说明一下吗?N是一列N’是一个字符串,但可能我误解了逻辑
SELECT count(N) as c
    , m.mB as move
    , m.fenB as fen 
FROM 
    (SELECT mB, fenB, oid FROM move WHERE m.fenB LIKE BINARY ‘S’ AND mB!=‘S’) m
INNER JOIN opening o on m.oid = o.id AND o.deleted=N    
INNER JOIN book  b on o.bid=b.bid AND b.is_deleted=N  AND b.published=N 
GROUP BY m.mB 
ORDER BY c DESC