A função FIND_IN_SET do MySQL é famosa por não utilizar índices, resultando em consultas ineficientes. No entanto, existem abordagens alternativas para alcançar o comportamento de indexação desejado ao lidar com listas separadas por vírgula.
A técnica descrita na resposta fornecida sugere o uso de uma instrução preparada com um parâmetro aceitar uma string na forma de uma lista separada por vírgulas. Ao usar o tipo de intervalo com uma chave não NULL na instrução preparada, ele garante que os índices serão empregados ao executar a cláusula IN.
Por exemplo, a consulta a seguir executa uma pesquisa de intervalo com um índice no Coluna 'id':
explain select * from ratings where id in (2331425, 430364, 4557546, 2696638, 4510549, ...)
Embora essa abordagem permita consultas indexadas eficientes, é crucial considere as seguintes precauções:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3