Los índices son estructuras de búsqueda almacenadas y actualizadas por el gestor, que agilizan la búsqueda de registros a partir del valor de una tributo o conjunto de atributos. Pueden implementarse con distintas estructuras de datos:

  • Árboles: binarios, B, B+, B*, etc.
  • Tablas de Hash.

En los gestores los índices se clasifican en distintos tipos:

  • Cuando el índice se construye sobre el campo de ordenamiento clave de un archivo ordenado de registros, se denomina índice primario.
  • Cuando se construye sobre el campo de ordenamiento del archivo físico, pero este no es clave, el índice se denomina índice de clustering.
  • Los índices que se construyen sobre campos que no son los campos de ordenamiento del archivo se denominan índices secundarios.

Observación

Un archivo solo puede tener un único índice primario o de clustering

Lenguaje SQL]

SQL no dispone de una sentencia estándar para la definición de índices, aunque la mayoría de los gestores tienen una sentencia tipo CREATE INDEX con la siguiente sintaxis:

CREATE [UNIQUE] INDEX nombreIndice
ON tabla (A1, ..., An);

En PostgreSQL no se pueden crear índice de clustering, pero sí permite clusterizar la tabla manualmente, lo cual se puede ejecutar periódicamente.