MYSQL временная оптимизация |Объединение дат звонков между таблицами на телефоне # и самый последний звонок - PullRequest
0 голосов
/ 11 октября 2018

Эта задача состоит в том, чтобы преобразовать функцию, представленную ниже, в запрос, который будет выполняться быстро, так как наша текущая логика слишком медленная (имеет общее время выполнения 24 часа).Обратите внимание, что соответствующие столбцы уже проиндексированы.

Размер наших таблиц следующий;Таблица 1 - 300 000 строк Таблица 2 - 15 000 строк

Этот запрос сопоставляет даты телефонных звонков между двумя таблицами на основе номера телефона и идентификатора ближайшей исходящей даты.Первая таблица (Таблица телефонных вызовов 1) - это исходящие маркетинговые телефонные звонки, в то время как телефонные звонки из второй таблицы (Таблица телефонных звонков 2) содержат тот же номер телефона, но в контексте входящих звонков на номера, отображаемые в нашеммаркетинговые кампании.Логика сопоставляет самые последние исходящие телефонные звонки с таблицей входящих телефонных звонков на основе соответствующего времени и UID

Запрос выглядит следующим образом:

SELECT `Phone Number 2`, `Time of Call` FROM `Phone Call Table 2`
       JOIN 
       `Phone Call Table 1` 
    ON `Phone Call Table 1`.`Phone_Call_Start_1` = 
       (SELECT MAX(`Phone_Call_Start_1`)
              FROM `Phone Call Table 1`
              WHERE `Phone_Call_Start_1` < `Phone Call Table 
2`.`Phone_Call_Start_2`
              AND `Phone Number 1` = `Phone Number 2`
                     ) ;  

1 Ответ

0 голосов
/ 11 октября 2018

Пожалуйста, попробуйте следующий SQL:

select aa.`Phone Number 2`, aa.`Time of Call`, max(bb.`Phone_Call_Start_1`) as lateststart
from `Phone Call Table 2` aa
inner join `Phone Call Table 1` bb on aa.`Phone Number 2` = bb.`Phone Number 1`
and bb.`Phone_Call_Start_1` < aa.`Phone_Call_Start_2`
group by aa.`Phone Number 2`, aa.`Time of Call`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...