Ni es particularmente buena estrategia, pero si tuviera que elegir me quedaría con los varios índices individuales.
La razón es que un índice solo se puede usar si usa todos los campos en cualquier prefijo completo del índice. Si tiene un índice (a, b, c, d, e, f), esto funciona bien para una consulta que filtra en a
o una consulta que se filtra tanto en a
como en b
, pero será inútil para un filtro de consulta solamente en c
.
No existe una regla sencilla que siempre funcione para elegir los mejores índices. Necesita ver los tipos de consultas que está realizando y elegir los índices que acelerarían esas consultas particulares. Si piensa cuidadosamente sobre el orden de las columnas, puede encontrar una pequeña cantidad de índices que serán útiles para múltiples consultas diferentes. Por ejemplo, si en una consulta filtra en a
y b
, y en otra consulta filtra solo en b
, ambas consultas podrán usar un índice en (b, a) pero un índice an (a, b) no lo hará.
Todavía no he escrito ninguna de mis consultas (solo en la etapa de diseño). Básicamente, estás diciendo que no tienes índices hasta más tarde cuando tengo mis consultas listas ... –
Es bastante fácil pensar en algunos índices en la etapa de diseño, pero la mayoría de ellos se agregarán cuando crees tus consultas. – Mchl