我想優化這個查詢(因爲子查詢通常不是很快),但是我迷路了,因爲我不能使用連接來重寫這個,這樣會更好地提高性能,你能幫助我嗎?MySQL優化子查詢
SELECT id, company, street, number, number_addition, postalcode, telephone
FROM clients
WHERE (postalcode BETWEEN '1000' AND '9000') AND street = (
SELECT DISTINCT street FROM clients WHERE (postalcode BETWEEN '1000' AND '9000') AND postalcode <= (
SELECT MIN(postalcode) FROM clients WHERE street = 'Main Street' AND (postalcode BETWEEN '1000' AND '9000'))
ORDER BY postalcode DESC LIMIT 1, 1)
ORDER BY postalcode DESC, street DESC, number DESC, number_addition DESC, telephone DESC
LIMIT 1
感謝您的時間傢伙。
這個查詢真的很慢嗎?不要隨意優化。在您的MySQL服務器中啓用* slow_query_log *。這會在* slow_query_log_file *中記錄超過* long_query_time *的查詢。 – 2011-10-02 12:15:41