Я использую простой запрос левого соединения для извлечения двух строк данных из двух отдельных таблиц. Они оба содержат общий столбец с именем domain
, и я присоединяюсь к ним в этом столбце, чтобы вычислить значение, основанное на посещениях таблиц и других табличных доходах.Замедленный запрос MySQL с использованием LEFT JOIN
SELECT t1.`domain` AS `domain`,
(SUM(earnings)/SUM(visits)) AS `rpv`
FROM hat_adsense_stats t1
LEFT JOIN hat_analytics_stats t4 ON t4.`domain`=t1.`domain`
WHERE(t1.`hat_analytics_id`='91' OR t1.`hat_analytics_id`='92')
AND t1.`date`>='2013-02-18'
AND t4.`date`>='2013-02-18'
GROUP BY t1.`domain`
ORDER BY rpv DESC
LIMIT 10;
Это запрос, который я запускаю, и требуется выполнить 9.060 секунд.
В таблице hat_adsense_stats
содержит 60887 записей таблица hat_analytics_stats
содержит 190780 записей
а группировка по domain
она возвращает 186 строк данных, которая нуждается в сравнивающие.
Любые предложения по эффективному коду или по лучшему пути решения этого будут оценены!
показать результат объяснения вопроса .. – divyabharathi