MySQL время запроса истекает - PullRequest
0 голосов
/ 13 апреля 2020

, поэтому у меня есть таблица MySQL, содержащая около 100 000 строк, и много проблем с относительно простым запросом.

Когда я сужаю поле поиска, например, до. WHERE artcode = 'A1234' работает отлично.

Но мне нужно запустить его на всей таблице, я пытаюсь сузить его по категориям интрастата, но он все еще зависает.

Итак, я экспортировал заполнить таблицу и импортировать ее в отдельную базу данных только для того, чтобы удалить все ненужные поля и выполнить тот же запрос для той же таблицы, но с таблицей.

Все поля проиндексированы, перепробованы все поля в 1 индексе и каждое поле в своем собственном индексе. время ожидания истекло (также с превышением времени ожидания СУБД на рабочем месте при более высоких значениях)

Я могу изменить / добавить структуру, так как мне нужно только периодически запускать этот запрос.

SELECT 
    DISTINCT(PL2.nextartcode) as nextartcode,
    `prdbesarch`.`artcode`
    FROM `mydb`.`prdbesarch` 

    LEFT OUTER JOIN (
         SELECT artcode as nextartcode, besnr, itemnr - 1 as previtemnr 
         FROM prdbesarch WHERE intrastat = '94051099' OR intrastat = '94052099'  
    ) as PL2 
    ON CONCAT(`prdbesarch`.`besnr`,'.',`prdbesarch`.`itemnr`) =         
    CONCAT(PL2.besnr,'.',PL2.previtemnr) 

    WHERE intrastat = '94051099' OR intrastat = '94052099' 
    GROUP BY nextartcode
    ORDER BY artcode ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...