gpt4 book ai didi

mysql - 优化查询mysql搜索

转载 作者:行者123 更新时间:2023-11-29 21:06:41 25 4
gpt4 key购买 nike

我有以下 SQL,但执行速度非常慢,大约需要 45 秒,表有 1500 万条记录,我该如何改进?

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

最佳答案

对于此查询,我将从 MOVIMENTO(CODIGO_EMPRESA, CODIGO_FILIAL, DOC_MODELO)MODELODOCUMENTOFISCAL(CODMODELO) 上的索引开始。

这应该会加快查询速度。

如果没有,您可能需要考虑全文搜索来处理 LIKE 子句。我确实注意到,在其中一个模式的开头只有一个通配符。这是故意的吗?

关于mysql - 优化查询mysql搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com