SELECT a.FundIDRecv,a.SubscribeDt, b.FundName,
(
SELECT SUM(c.PricePerWeek)
FROM tbl_Hive c
WHERE c.FundID IN
(
SELECT FundID from tbl_FundStatic
WHERE FundID IN
(
SELECT FundIDSend
FROM tbl_FundSubscriptions
WHERE FundIDRecv = a.FundIDRecv
AND SubscribeDt >= subdate(CURDATE(), INTERVAL weekday(CURDATE()) DAY)
)
AND UserID = '14'
)
) as Price
FROM tbl_FundSubscriptions a, tbl_Hive b
WHERE a.FundIDRecv = b.FundID
AND a.SubscribeDt >= subdate(CURDATE(), INTERVAL weekday(CURDATE()) DAY)
AND a.FundIDRecv IN
(
SELECT FundIDRecv
FROM tbl_FundSubscriptions
WHERE FundIDSend IN (
SELECT FundID
FROM tbl_FundStatic
WHERE UserID = '14'
)
)
GROUP BY FundIDRecv
이 쿼리는 데이터를 가져 오는 데 엄청난 시간이 걸립니다.MySQL : 쿼리 최적화
이 쿼리를 실행하고 결과를 빠르게 가져올 수 있도록 최적화하려면 어떻게해야합니까?
에 따라 다릅니다. 당신의 테이블과 인덱스는 무엇입니까? 그것은 큰 차이를 만듭니다. –
쿼리가 수행 할 작업을 알려줍니다. – Pentium10
쿼리에 대해 DB 구조 (테이블/인덱스)와 실행 계획 (설명)을 제공하십시오. – oryol