> SELECT
> SUM(m_out) AS totalOut
> FROM
> m_detal
> WHERE
> opers = '25'
> AND (m_type = 'Out'
> OR m_type = 'Merged')
> AND m_date <= '2018-11-28 07:30:00'
> AND mark_delete IS NULL
> AND m_ids NOT IN (SELECT
> m.m_ids
> FROM
> (SELECT
> m_ids
> FROM
> m_detal
> WHERE
> opers = '25'
> AND (m_type = 'Out'
> OR m_type = 'Merged')
> AND (m_onhold != 'onhold'
> OR m_onhold IS NULL)
> AND mark_delete IS NULL
> AND m_date <= '2018-11-28 07:30:00') AS m
> INNER JOIN
> n_combine_tbl AS t ON (t.comb_id1 = m.m_ids
> OR t.comb_id2 = m.m_ids)
> AND t.time <= '2018-11-28 07:30:00');
Этот запрос занял у меня больше 30 секунд или больше!Запрос внутри NOT IN немного огромен, около 7-9 тыс. Идентификаторов.Есть ли более эффективный способ сделать это?Я думаю, что внутренняя часть соединения состоит в том, чтобы замедлить проверку двух столбцов n_combine_tables (comb_id1 или comb_id2).
Есть ли более эффективный способ сделать это?