Помогите ускорить выборку из базы Mysql При выборке 10 записей уходит 2.5 секунды!
SELECT fr.*, fr.status AS fstatus, us.*, bk.*, od.*, ev.eventName, ev.date AS evDate, ev.homeTeam, ev.awayTeam, ev.eventId AS eventId, ev.href AS eventHref, sp.name AS sportName,
lg.leagueId, lg.name AS lgName, cn.name AS cnName, sp.name AS spName FROM forecast fr
JOIN user us ON
us.userId = fr.userId AND (SELECT SUM(profit) as profit FROM `forecast` WHERE userId = us.userId AND status IS NOT NULL AND profit IS NOT NULL ) > -100000
JOIN bookmaker bk ON
bk.bookmakerId = fr.bid
JOIN odds od ON
fr.oddsId = od.oddsId
JOIN event ev ON
od.eventId = ev.eventId
JOIN league lg ON
lg.leagueId = ev.leagueId
JOIN country cn ON
lg.countryId = cn.countryId
JOIN sport sp ON
lg.sportId = sp.sportId
WHERE ev.date > 0 AND fr.forecast IS NOT NULL GROUP BY fr.forecastId ORDER BY fr.date DESC LIMIT 0, 10
Возможно его както сгруппировать?
Без EXPLAIN и схемы таблиц трудно оценить сложность запроса. Обязательно прикладывайте результат EXPLAIN EXTEND и схему! А с ходу могу посоветовать сначал выбрать userId:
SELECT userId FROM `forecast`
WHERE status IS NOT NULL AND profit IS NOT NULL
GROUP BY userId
HAVING SUM(profit) > -100000;
Потом уже:
SELECT fr.*, fr.status AS fstatus, us.*, bk.*, od.*, ev.eventName, ev.date AS evDate, ev.homeTeam, ev.awayTeam, ev.eventId AS eventId, ev.href AS eventHref, sp.name AS sportName, lg.leagueId, lg.name AS lgName, cn.name AS cnName, sp.name AS spName
FROM forecast fr
JOIN user us ON
us.userId = fr.userId
JOIN bookmaker bk ON
bk.bookmakerId = fr.bid
JOIN odds od ON
fr.oddsId = od.oddsId
JOIN event ev ON
od.eventId = ev.eventId
JOIN league lg ON
lg.leagueId = ev.leagueId
JOIN country cn ON
lg.countryId = cn.countryId
JOIN sport sp ON
lg.sportId = sp.sportId
WHERE userId IN (???????) ev.date > 0 AND fr.forecast IS NOT NULL
GROUP BY fr.forecastId
ORDER BY fr.date DESC LIMIT 0, 10;
Можно даже подзапрос сунуть в (???????) - но не рекомендую. Ну и естественно обязательно чтоб был индекс на userId, ну а далее можно оптимизировать с помощью составных индексов
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добавил в строковые ресурсы новый язык, но при входе в приложение с другим установленным языком, строки не переводятсяВидимо я чего то не доделываю?...
Пытаюсь выполнить JavaScript код в TChromium, но получаю ошибку: