0
SELECT
a.idmotcle,
a.motcle,
count(DISTINCT c.id) as 'Programs',
count(DISTINCT d.id) as 'Searches',
FORMAT(count(DISTINCT d.id)/count(DISTINCT c.id),2) as 'S/P'
FROM motcle a
INNER JOIN motcle b
ON b.idmotcle=a.idmotcle AND a.archive=0
LEFT JOIN masters_keywords_nton c
ON c.id_motcle=a.idmotcle
LEFT JOIN master_search_log_tbl d
ON d.search_string LIKE concat('%',a.motcle,'%')
GROUP BY a.idmotcle
ORDER BY a.motcle
表 - 記錄總數約如何優化這個mysql 3表連接查詢?
motcle - 200
masters_keywrods_nton - 1300
master_search_log_tbl - 4800
我已經在在上使用條款的所有字段的索引。
查詢當前需要62.887秒當我在生產環境中運行它。
我覺得有一些更好的方式做加盟和計數?
什麼是連接表的目的motcle一到motcle B'我沒有看到b在哪裏使用。 – 2013-02-15 12:24:31
@AndaIancu我正在使用內部聯接來過濾a.archive = 0的表 – Matt 2013-02-15 13:38:37
無需內部聯接 - 您可以添加where子句'WHERE a.archive = 0'。 – 2013-02-15 13:47:17