Reconstruir indice usando REINDEX en PostgreSQL

En este artículo veremos cómo reconstruir índice usando REINDEX en PostgreSQL ya que en muchas ocasiones los índices pueden no ser válidos o corromperse. Si no conoces lo que es un índice o quieres aprender a crearlo puedes leer este otro artículo.

Sintaxis

La sintaxis para reconstruir un índice es la siguiente:

REINDEX [ ( VERBOSE ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } name;

En la sintaxis anterior:

  • Destacar que al especificar la palabra opcional VERBOSE le estamos indicando que nos muestre un informe de progreso.

Regenar un indice

REINDEX INDEX index_name;

Regenerar todos los indices de una tabla

REINDEX TABLE table_name;   

Regenerar todos los indices de un esquema

REINDEX SCHEMA schema_name;   

Regenerar todos los indices de una BBDD

REINDEX DATABASE database_name;

Regenerar todos los indices del catalogo sistema

REINDEX SYSTEM database_name;

Diferencias entre recrear o borrar y crear

Con ambos se consigue recrear el índice aunque no son del todo iguales en cómo lo realizan.

REINDEX

  • Bloquea las escrituras pero no las lecturas de la tabla a la que pertenece el índice.
  • Realiza un bloqueo exclusivo en el índice que se está procesando, que bloquea las lecturas que intentan usar el índice.

DROP & CREATE

  • DROP INDEX bloquea tanto las escrituras como las lecturas de la tabla a la que pertenece el índice adquiriendo un bloqueo exclusivo en la tabla.
  • CREATE INDEX bloquea las escrituras pero no las lecturas de la tabla principal del índice. Sin embargo, las lecturas pueden ser costosas durante la creación del índice.

Escribir un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.