Я занимаюсь интернатурой в рекламной компании, я уже реализовал инструмент для сбора всей необходимой формы данных в facebook и импорта их в базу данных.выберите из нескольких таблиц и сумму против объединения и суммы
Теперь я пытаюсь манипулировать этими данными, сначала создав несколько тестовых примеров и получив некоторые результаты. Таблицы растут на 35 тыс. Строк в день, поэтому через месяц с использованием инструмента я заметил, что запрос, который я использую для получения суммы определенных кликов adcreatives, начинает замедляться.
Я спрашиваю, может ли запрос, который я использую, ускорить, если я использую его для соединения и как.
здесь запрос я есть на сумму кликов в adcreative (с adgroup_id, campaign_id, как подключаться к другим таблицам):
<!-- language-all: lang-sql -->
SELECT t1.adgroup_id, t1.campaign_id, t1.creative_ids, SUM(t2.clicks) AS clicks
FROM adgroups t1, adgroup_stats t2
WHERE t1.adgroup_id = t2.adgroup_id
GROUP BY t1.creative_ids
ORDER BY clicks DESC
В настоящее время запрос занимает 3 секунд, чтобы завершить на выделенном сервере, я думаю, что через 6 месяцев это будет продолжаться более 60 секунд или около того, когда таблицы будут расти.
редактировать: вот объяснить запроса (хотя это первый раз, когда я на самом деле использовать его и не уверен, что это значит)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 671549 Using temporary; Using filesort
1 SIMPLE t1 ref PRIMARY PRIMARY 8 fbads.t2.adgroup_id 358 Using index
** Прежде всего ** вам необходимо запустить свое соединение и посмотреть его производительность без каких-либо агрегаций. Вы использовали EXPLAIN свой запрос? Без объяснения не должен приниматься вопрос о производительности SQL. Только тогда, когда вы делаете свое соединение, работайте быстро - тогда вы можете пойти на агрегации –