我如何提高性能这个查询,同时还获得所需的所有信息..如何提高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是的,我已经完成 –