У меня проблема с запросом для веб-сайта. Это ситуация:
У меня есть 3 таблицы:
Артиколей = где есть все статьи
clasart = где есть все матчи между кодом статьей и кодой класса - 32314 строк
classificazioni =, где есть все совпадения между кодом класса и именем класса - 2401 строкамиОптимизировать запрос mysql
и это запрос
SELECT a.clar_classi , b.CLA_DESCRI
FROM clasart a JOIN (
SELECT art.AI_CAPOCODI, art.ai_codirest
FROM (select * from clasart where clar_azienda = 'SRL') a
JOIN (
SELECT AI_CAPOCODI, AI_CODIREST,AI_DT_CREAZ,
AI_DESCRIZI, AI_CATEMERC, concat(AI_CAPOCODI, AI_CODIREST) as codice, aI_grupscon
FROM articoli
WHERE AI_AZIENDA = 'SRL' AND AI_CATEMERC LIKE '0101______' AND AI_FLAG_NOW = 0 AND AI_CAPOCODI <> 'zzz'
) art ON trim(a.CLAR_ARTICO) = art.AI_CODIREST
JOIN classificazioni b ON a.CLAR_CLASSI = b.CLA_CODICE
WHERE b.CLA_CODICE LIKE 'AA51__'
group by CLAR_ARTICO) art ON trim(CLAR_ARTICO) = concat(art.AI_CAPOCODI, art.ai_codirest)
JOIN classificazioni b ON a.CLAR_CLASSI = b.CLA_CODICE
WHERE CLAR_AZIENDA = 'SRL' AND CLAR_CLASSI like 'CO____'
Время прогона - 16 секунд. Увеличение времени до 16 секунд при соединении с классификацией.
Вы можете мне помочь? Благодаря
Прежде всего, измените все 'AI_CATEMERC LIKE '0101 ______' 'на' AI_CATEMERC =' 0101 ______ ''. Вы не используете подстановочные знаки в своем 'LIKE', поэтому это необязательно. – vaso123
если я изменяю как in = не найден результат – vecio88
Перепишите запрос, избавившись от подзапросов. Это мешает оптимизатору, и они не нужны. –