我有一個連接表的查詢。這是select語句:爲什麼我的MySQL加入緩慢?
SELECT *, A.id AS id,
A.username AS username,
G.desc AS customer_desc,
H.id AS counter,
SUM(F.amount_paid)
FROM tblcheckin AS A
LEFT OUTER JOIN tblrate AS B ON B.id = A.rate_id
LEFT OUTER JOIN tblrefaccom_type AS C ON C.id = A.id
LEFT OUTER JOIN tblcust_bill AS D ON D.check_in_id = A.id
LEFT OUTER JOIN tblroom AS E ON E.room_no = A.room_id
LEFT OUTER JOIN tblpayment AS F ON F.check_in_id = A.id
LEFT OUTER JOIN tblrefcust_type AS G ON G.id = A.customer_desc
LEFT OUTER JOIN tblindex AS H ON A.id = H.check_in_id
WHERE A.check_out = "0000-00-00 00:00:00"
GROUP BY F.check_in_id
ORDER BY check_out, check_in
結果:Showing rows 0 - 11 (12 total, Query took 7.4061 sec)
這是Explain SQL
這是我的就是我所做的迄今: 我設置optimizer_search_depth = 0
因爲我想它會像這裏提到的那樣工作Joining many tables in mySQL。
我在這裏做錯了什麼?我感謝每一個反饋。謝謝。
UPDATE。問題解決了。我在tblpayment,tblcust_bill和tblindex的check_in_id列中添加了索引。這裏是新Explain SQL
:
您正在對'GROUP BY'使用惡意的MySQL擴展。讀這個。 http://dev.mysql.com/doc/refman/5。5/en/group-by-extensions.html –
感謝您的反饋。我已閱讀文章並將F.check_in_id添加到選擇列表中。但是,它仍然很慢。 – DVA