我有以下3個表:MySQL的優化:LEFT JOIN
出版物(主鍵= 文章)
article | title | pubType
作者(主鍵= * AUTHOR_NAME *)
author_name | author_somethingelse
pub_author_map
article | author_name
給定值pubType
,我需要選擇有關的文章,包括作者的信息。要做到這一點,我有
SELECT p.article, p.title, p.dateTime, pam.author_name FROM publications p
LEFT JOIN pub_author_map pam ON pam.article = p.article
LEFT JOIN authors a ON a.author_name = pam.author_name
WHERE p.pubType = '$pubType' ORDER BY p.article LIMIT 10
即使有LIMIT 10
,這個查詢在約29秒入。 publications
中有1500行,pub_author_map
中有3000行。
如何優化上述查詢?
請注意,LIMIT不會限制sql數據集,而是限制輸出。因此,它不應該用於生產。 – 2012-08-08 16:52:26
@SebastianHojas你是說LIMIT不應該用於生產? ? – 2012-08-08 16:54:50
關於你的注意事項:首先想出一個提供正確結果的查詢,然後重寫它比其他方式快速工作要好得多。沒有理由讓作者脫離示例。我們大多數人可以處理三種方式的聯接。 – 2012-08-08 16:55:39