Nota: En esta pregunta, estoy usando el término "autocompletar" (o "búsqueda iterativa") para referirme a los resultados de la búsqueda de retorno a medida que escribe, p. Ej. como Google Search te da. Además, mi pregunta no es específica para aplicaciones web frente a aplicaciones de clientes gordos.¿Cómo se optimiza el rendimiento de la base de datos al proporcionar resultados para la búsqueda autocompletada/iterativa?
¿Cómo se suelen construir las consultas SQL SELECT para proporcionar un rendimiento decente para este tipo de consultas, especialmente en conjuntos de datos arbitrariamente grandes? En el caso en que la búsqueda solo haga una consulta en base a los primeros n caracteres (caso más fácil), aún estoy emitiendo un nuevo SELECCIONE resultado FROMtable WHERE entry LIKE ... en cada pulsación de tecla. Incluso con varias formas de almacenamiento en caché esto parece que podría dar como resultado un bajo rendimiento.
En los casos en que desee que su cadena de búsqueda arroje resultados con prefijos, subcadenas, etc., se trata de un problema aún más difícil. Si observa un caso de búsqueda de una lista de contactos, puede devolver resultados que coincidan con Nombre + Apellido, Apellido + Nombre o cualquier otra subcadena.
@Marcus - ¡Esta respuesta es excelente, gracias! – Howiecamp