需要帮助重写慢速mysql查询吗
我有两个缓慢的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
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