Se pueden crear índices GiST y SP-GiST en columnas de tablas de los tipos de conjunto y de rango. El índice GiST implementa un árbol R, mientras que el índice SP-GiST implementa un árbol cuádruple. Un ejemplo de creación de un índice GiST en una columna During
de tipo tstzspan
en una tabla Reservation
es como sigue:
CREATE TABLE Reservation (ReservationID integer PRIMARY KEY, RoomID integer, During tstzspan); CREATE INDEX Reservation_During_Idx ON Reservation USING GIST(During);
Un índice GiST o SP-GiST puede acelerar las consultas que involucran a los siguientes operadores: =
, &&
, <@
, @>
, -|-
, <<
, >>
, &<
, &>
, <<#
, #>>
, &<#
, #&>
y <->
.
Además, se pueden crear índices de árbol B para columnas de tabla de un tipo de rango o de tiempo. Para estos tipos de índices, básicamente la única operación útil es la igualdad. Hay un orden de clasificación de árbol B definido para valores de tipos de rango o de tiempo con los correspondientes operadores <
, <=
, >
y >=
, pero el orden es bastante arbitrario y no suele ser útil en el mundo real. El soporte del árbol B está destinado principalmente a permitir la clasificación interna en las consultas, en lugar de la creación de índices reales.
Finalmente, se pueden crear índices hash para columnas de tabla de un tipo de rango o de tiempo. Para estos tipos de índices, la única operación definida es la igualdad.