У меня есть следующий SQL, но его выполнение очень медленно, занимает около 45 секунд, таблица имеет 15 миллионов записей, как я могу улучшить?Оптимизируйте запрос mysql seach
SELECT A.*, B.ESPECIE
FROM
(
SELECT
A.CODIGO_DOCUMENTO,
A.DOC_SERIE,A.DATA_EMISSAO,
A.DOC_NUMERO,
A.CF_NOME,
A.CF_SRF,
A.TOTAL_DOCUMENTO,
A.DOC_MODELO
FROM MOVIMENTO A
WHERE
A.CODIGO_EMPRESA = 1
AND A.CODIGO_FILIAL = 5
AND A.DOC_TIPO_MOVIMENTO = 1
AND A.DOC_MODELO IN ('65','55')
AND (A.CF_NOME LIKE '%TEXT_SEARCH%'
OR A.CF_CODIGO LIKE 'TEXT_SEARCH%'
OR A.CF_SRF LIKE 'TEXT_SEARCH%'
OR A.DOC_SERIE LIKE 'TEXT_SEARCH%'
OR A.DOC_NUMERO LIKE 'TEXT_SEARCH%')
ORDER BY A.DATA_EMISSAO DESC , A.CODIGO_DOCUMENTO DESC
LIMIT 0, 100
) A
LEFT JOIN MODELODOCUMENTOFISCAL B ON A.DOC_MODELO = B.CODMODELO
Поместите EXPLAIN перед этим запросом, отредактируйте ваш вопрос с результатами – Mihai
Сколько строк это, если вы запускаете запрос без условий текстового поиска? – Kateract
# id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra '1', 'PRIMARY', '', 'ALL', NULL, NULL, NULL, NULL, '100', ' NULL '1', 'PRIMARY', 'B', 'ALL', NULL, NULL, NULL, NULL, '34', 'Using where; Использование присоединиться буфер (блок вложенного цикла)» '2', 'DERIVED', '', 'Индекс А', 'ПЕРВИЧНЫЙ, DOC_TIPO_MOVIMENTO, FK_MOVIMENTO_CODPAGTO, IDX_DOC_MODELO, IDX_CONSULTA, IDX_CF_CODIGO_CF_TIPO, CF_CODIGO, IDX_ITEM_REF, IDX_PDV', 'DATA_EMISSAO', '6', NULL, '14350757', 'Использование где' –