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
Просьба предоставить структуры БД (таблицы/индексы) и план выполнения (пояснить) для вашего запроса – oryol