我有一個sql查詢運行速度非常慢,我對爲什麼感到困惑。查詢內容爲:MySQL查詢運行*非常*緩慢
SELECT DISTINCT(c.ID),c.* FROM `content` c
LEFT JOIN `content_meta` cm1 ON c.id = cm1.content_id
WHERE 1=1
AND c.site_id IN (14)
AND c.type IN ('a','t')
AND c.status = 'visible'
AND (c.lock = 0 OR c.site_id = 14)
AND c.level = 0
OR
(
( c.site_id = 14
AND cm1.meta_key = 'g_id'
AND cm1.meta_value IN ('12','13','7')
)
OR
( c.status = 'visible'
AND (
(c.type = 'topic' AND c.parent_id IN (628,633,624))
)
)
)
ORDER BY c.date_updated DESC LIMIT 20
內容表大約有1250行,內容元表大約有3000行。這不是很多數據,我不太確定可能導致它運行得如此緩慢。任何想法/意見將不勝感激。
謝謝!
使用'explain'來查看性能缺失的位置。欲瞭解更多信息,你需要提供更多的信息表結構。 –
以下查詢返回多少條記錄:'select * from content c left join content_meta cm1 on c.id = cm1.content_id'? – mellamokb
你有where子句和按列排序的索引嗎? – Matthew