Índice 'permitido' Campos buena idea?
-
05-10-2019 - |
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'?
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.