Pregunta

contenido de un sitio web se almacena en una base de datos MySQL. se activará el 99% del contenido, pero algunos (usuarios, mensajes, etc.) estará desactivada. La mayor parte de las consultas terminan como WHERE (...) AND enabled

¿Es una buena idea para crear un índice en el campo 'permitido'?

¿Fue útil?

Solución

No sería de mucha utilidad la creación de un índice sólo en enabled solo. Pero podría ser útil para crear un índice compuesto en el que se incluye enabled, a fin de lograr ORDER BY optimización .

Por ejemplo, si algo como esto era una consulta común:

SELECT * FROM things WHERE c1='foo' AND enabled=1 ORDER BY c2

Un índice de c1 permitiría a las filas coincidentes para encontrar rápidamente, pero todavía tendría que ser resuelto en un paso utilizando c2 separado.

Un índice de c1, c2 debe permitir que el pedido se haga a partir del índice, gran medida la aceleración de la consulta de clasificación, pero la falta de enabled en el índice iría en contra de eso, porque tendría que recopilar la lista de filas coincidentes indexados por c1, después Barrido cada fila para comprobarlo de enabled antes de ordenar los resultados por c2.

Si el índice fuera enabled, c1, c2 o c1, enabled, c2, toda condición WHERE y el ordenamiento podrían tomarse directamente de índice, dando resultados más rápidos.

Como siempre, va a depender de lo que está haciendo consultas; usted debe EXPLICAR sus consultas más comunes a cheque a ciencia cierta lo que está haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top