Dos preguntas para pensar:
- ¿Cuántas columnas podría presentarse para la consulta?
- ¿Los datos cambian con frecuencia? ¿Mucho de eso?
Si usted tiene un número pequeño de columnas candidatos, y los datos no cambia mucho , entonces es posible que desee considerar la adición de un índice permanente en cualquiera o incluso toda la columna candidato.
"Blasfemia!", escuché. La mayoría de las fuentes te dicen que "nunca" indices todas las columnas de una tabla, pero esto se basa en la suposición genérica de que las tablas se modifican con frecuencia.
Pagará un precio en almacenamiento adicional, así como un rendimiento alcanzado cuando los datos cambian.
¿Qué tan pequeño es pequeño y cuánto es mucho, y es la compensación vale la pena? No hay forma de decirlo a priori porque "demasiado lento" suele ser una medida subjetiva.
Tendrás que probarlo, medir el tamaño de tus índices y luego el efecto que tienen en las búsquedas. Deberá equilibrar los costos con el aumento en la satisfacción de sus clientes.
[Agregado] Ah, una cosa más: los índices temporales no solo son físicamente más lentos que un escaneo de tabla, sino que destruirían su concurrencia. Volver a indexar una tabla generalmente (¿siempre?) Requiere un bloqueo de tabla completo, por lo que en efecto, solo se puede realizar una búsqueda de usuario a la vez.
Buena suerte.