Почему этот запрос не завершен в разумные сроки? - PullRequest
0 голосов
/ 24 января 2020

Следующий запрос, включая подзапрос по MySQL 8.0.15, не будет выполнен через 15 минут.

Этот запрос пытается найти значения из шести цифр git в таблице "del", которых нет в таблице IMA. Поле «Сообщение» в REGEX_SUBSTR содержит другие текстовые значения, так что это просто извлекает шестизначную часть git в соответствии с предложением WHERE.

SELECT
    ID 
FROM
    del
WHERE
    ID NOT IN (
    SELECT DISTINCT
        REGEXP_SUBSTR ( Message, '\\d{6}' ) AS ID1 
    FROM
        IMA 
    WHERE
        AND Message LIKE '%deleted%'
    )

Каждый из запросов по отдельности завершается менее чем за 20 секунд , но вместе с этим возникает огромная проблема.

Размеры таблиц составляют менее 30 000 записей для каждого из двух результатов.

Я попытался создать индекс для поля Сообщение.

Компьютер имеет 128 ГБ оперативной памяти и процессор i9.

Заранее спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...