sql >> Base de Datos >  >> RDS >> Mysql

¿Qué es un índice de texto completo y cuándo debo usarlo?

En las bases de datos, los índices generalmente se usan para mejorar el rendimiento cuando se busca algo definido en su cláusula where. Sin embargo, cuando se trata de filtrar algún texto, p. usando algo como WHERE TextColumn LIKE '%searchstring%' entonces las búsquedas son lentas, porque la forma en que funcionan los índices regulares de la base de datos está optimizada para las coincidencias con el 'contenido completo' de una columna y no solo con una parte de ella. En concreto, la búsqueda LIKE que incluye comodines no puede hacer uso de ningún tipo de índice.

Como se menciona en el comentario a continuación, MySQL necesita MATCH () ... AGAINST sintaxis para buscar dentro de un índice de texto completo; Por cierto, esto varía según el proveedor de la base de datos. En MS SQL puedes usar CONTAINS así que tenga esto en cuenta cuando planee admitir otras bases de datos también.

Los índices de texto completo funcionan mejor para texto normal, porque están optimizados para este tipo de columnas. Muy simplificado:Dividen el texto en palabras y hacen un índice sobre las palabras y no sobre todo el texto. Esto funciona mucho más rápido para búsquedas de texto cuando se buscan palabras específicas.