Creación de Índices



Los índices se utilizan para mejorar el rendimiento de la base de datos. PostgreSQL proporciona los métodos de índice B-tree, hash, Gist, y la ginebra. Los usuarios también pueden definir sus propios métodos de índice, pero eso es bastante complicado.

Para la creación de un índice se utiliza la siguiente sintaxis:

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ] ( { column | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] ) [ WITH ( storage_parameter = value [, ... ] ) ] [ TABLESPACE tablespace ] [ WHERE predicate ]



Ejemplos


1. Para crear un índice B-tree en la columna “title” de la tabla “films”
CREATE UNIQUE INDEX title_idx ON films (title);

2. Para crear un índice en la expresión “lower(title)” permitiendo búsquedas eficientes:
CREATE INDEX lower_title_idx ON films ((lower(title)));

3.Para crear un índice con factor de llenado no predeterminado:
CREATE UNIQUE INDEX title_idx ON films (title) WITH (fillfactor = 70);

4.Para crear un índice en la columna de código en la tabla de películas y tienen el índice reside en el espacio de tablas indexspace :
CREATE INDEX code_idx ON films(code) TABLESPACE indexspace;

5.Para crear un índice sin bloquear escrituras en la tabla:
CREATE INDEX CONCURRENTLY sales_quantity_index ON sales_table (quantity);