와 MySQL을보기를 최적화 나는이보기가 :이 쿼리를 실행집계 함수
CREATE VIEW invoicereport
SELECT i.ID, SUM(o.Amount * o.Price) AS Total
FROM invoice i
JOIN `order` o ON i.ID = o.InvoiceID
GROUP BY i.ID
을 직접 0.03 초 정도 걸립니다. 그러나보기를 실행하는 데 2 초가 걸립니다. SELECT * FROM invoicereport WHERE ID=9000
일 때도 2 초가 걸립니다. 내가 SELECT * FROM invoicereport WHERE ID=9000
을 수행 할 때 다음 그것은 훨씬 더 느린 완료 3 초 정도 걸립니다
CREATE VIEW invoicereport
SELECT i.ID, (SELECT SUM(Amount * Price) FROM `order` WHERE InvoiceID=i.ID) AS Total
FROM invoice i
가 하위 쿼리 만 ID 9000 에 대해 실행됩니다 생각 :
그래서 나는에보기를 다시.
이 쿼리를 최적화하는 다른 방법이 있습니까?
[MySQL은 성능 말썽 꾸러기로 VIEW] (http://www.mysqlperformanceblog.com/2007/08/12/mysql-view-as-performance-troublemaker/) –