2
我有這個查詢運行良好的兩個表company
和question
。這兩個表是結構化的方式如下:提高MySQL查詢性能
company | question
id | id
name | company_id
| sentiment
SELECT company.id as company_id, company.name, question.sentiment,
(SELECT count(*) FROM question
WHERE question.sentiment=0 AND question.company_id=company.id) AS count
FROM question
JOIN company ON company.id=question.company_id
WHERE question.sentiment = 0 GROUP BY company_id ORDER BY count DESC LIMIT 5
我一直在試圖找出如何才能避免這似乎減緩查詢執行的子查詢重寫這個。 問題表有1000多條記錄。 此外,使用索引已將執行時間從545.037秒減少到180.228秒,但仍需要改進。
感謝
嘗試「解釋」延伸,看到了優化器如何處理它。可能會給你一些關於如何進行的線索。 – ethrbunny
診斷慢查詢需要全表和索引定義,而不僅僅是描述或釋義。也許你的表格定義不好。也許索引沒有正確創建。沒有看到表和索引定義,我們不能說。 –