我如何提高性能這個查詢,同時還獲得所需的所有信息..如何提高SQL查詢多個連接表的性能
SELECT
tr.id, tr.request_status, tr.note, tr.created_date,
c.name AS customer_name, c.mobile_phONe,
u.full_name AS created_by_name, tt.name AS ticket_type_name
FROM
ticket_request tr
LEFT JOIN
ticket_type tt ON tt.id = tr.ticket_type_id
LEFT JOIN
users u ON u.id = tr.created_by
LEFT JOIN
customer c ON c.id = tr.customer_id
WHERE
tr.is_deleted != 1
AND tr.user_id IN (SELECT u.id FROM users u WHERE u.status = '1')
GROUP BY
tr.id
ORDER BY
tr.created_date DESC
LIMIT 0,20
目前,該查詢在7-10秒內運行。
ticket_request
表有大約10萬行customers
表有300K左右行users
表ticket_type
沒有那麼多(約1K行)
添加索引到所有的連接列。你已經做過了嗎? –
我刪除了不兼容的數據庫標記。爲您實際使用的數據庫添加標籤。 –
@TimBiegeleisen是的,我已經完成 –