Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O que é um índice de texto completo e quando devo usá-lo?


Em bancos de dados, os índices geralmente são usados ​​para melhorar o desempenho ao procurar algo definido em sua cláusula where. No entanto, quando se trata de filtrar algum texto, por exemplo, usando algo como WHERE TextColumn LIKE '%searchstring%' então as pesquisas são lentas, porque a forma como os índices de banco de dados regulares funcionam são otimizados para correspondências com o 'conteúdo inteiro' de uma coluna e não apenas uma parte dela. Em específico a pesquisa LIKE que inclui curingas não pode fazer uso de nenhum tipo de índice.

Como mencionado no comentário abaixo, o MySQL precisa do MATCH () ... AGAINST sintaxe para pesquisar em um índice de texto completo; BTW, isso varia dependendo do fornecedor do banco de dados. No MS SQL você pode usar CONTAINS portanto, lembre-se disso quando planejar oferecer suporte a outros bancos de dados também.

Índices de texto completo funcionam melhor para texto normal, pois são otimizados para esse tipo de coluna. Muito simplificado:Eles dividem o texto em palavras e fazem um índice sobre as palavras e não todo o texto. Isso funciona muito mais rápido para pesquisas de texto ao procurar palavras específicas.