Índice primario:
Un índice utilizado para mejorar el rendimiento en la combinación de columnas más utilizadas para acceder a filas en una tabla.
El índice que controla el orden de procesamiento actual de un archivo. Mantiene un índice en la clave primaria.
Índice secundario:
Un índice que se mantiene para un archivo de datos, pero no se utiliza para controlar el orden de procesamiento actual del archivo. Por ejemplo, se podría mantener un índice secundario para el nombre del cliente, mientras que el índice primario se establece para el número de cuenta del cliente.
El índice secundario se utiliza automáticamente durante la búsqueda cuando mejora la eficiencia de la misma.
Los índices secundarios son mantenidos por el sistema y son invisibles para el usuario.
Cualquier columna(s) puede ser especificada como un índice secundario, excepto las columnas declaradas utilizando un tipo de datos LOB.
Las columnas en la CLAVE PRIMARIA, las columnas de una CLAVE FORÁNEA y las columnas definidas como ÚNICAS se indexan automáticamente, (en el orden en que se definen en la clave), por lo tanto, la creación de un índice en estas columnas no mejorará el rendimiento.
Las tablas de índices secundarios son puramente para uso interno de Mimer SQL: usted crea el índice y Mimer SQL se encarga del resto.
Por ejemplo, si desea saber qué productos se lanzaron en una fecha específica, Mimer SQL tendría que buscar sucesivamente en toda la tabla de ITEMS para encontrar todos los elementos que coincidan con la fecha que especificó. Sin embargo, si crea un índice secundario en la fecha de lanzamiento, Mimer SQL localizaría esa fecha directamente en el índice secundario, lo que ahorraría tiempo.
Los índices secundarios pueden mejorar la eficiencia de la recuperación de datos; pero introducen una sobrecarga para las operaciones de escritura (ACTUALIZAR, INSERTAR, ELIMINAR). En general, solo debe crear índices para columnas que se buscan con frecuencia.
No se pueden crear índices directamente en columnas en vistas. Sin embargo, dado que la búsqueda en una vista se implementa como una búsqueda en la tabla base, un índice en la tabla base también se utilizará en las operaciones de vista.
Ejemplos de Índice Secundario
Crear un índice secundario llamado ITM_RELEASE_DATE en la columna RELEASE_DATE de la tabla ITEMS:
CREATE INDEX itm_release_date ON items(release_date);
Las columnas de la clave primaria también pueden incluirse en un índice secundario. Si una tabla tiene las columnas de la clave primaria A, B y C, el índice primario cubriría las tres columnas de la clave primaria.
Las siguientes combinaciones de las columnas en la clave primaria se indexan automáticamente: A, AB y ABC. Además, se podrían crear índices secundarios en las columnas B, C, BC, AC, etc.
Un índice también se puede definir como ÚNICO, lo que significa que el valor del índice solo puede ocurrir una vez en la tabla. (Para este propósito, NULL se trata como igual a NULL). Sin embargo, es preferible usar restricciones únicas.
Crear un índice secundario ÚNICO llamado ITM_EAN_CODE en la columna EAN_CODE de la tabla ITEMS:
CREATE UNIQUE INDEX itm_ean_code ON ITEMS(ean_code);