Todos los productos
Search
Centro de documentos

PolarDB:Acelerar la creación de índices

Última actualización: Sep 17, 2026

La función Elastic Parallel Query permite acelerar la creación de índices B-tree y de índices globales de tipo B-tree. En este tema se explica por qué esta función acelera dichos procesos y cómo utilizarla para crear estos índices.

Funcionamiento

Cuando crea índices, el servicio examina la tabla heap sobre la que se van a generar los índices y construye las entradas indexadas. Después, genera un árbol B-tree de índice a partir de esas entradas.

Al usar esta función para acelerar la creación de índices, el sistema genera automáticamente un proceso coordinador de consultas (QC) que examina la tabla heap en paralelo. Luego, el proceso encargado de crear los índices recibe los resultados del examen enviados por el QC y construye los índices.

Precauciones

  • Esta función solo acelera la creación de índices en columnas generales. No es posible utilizarla cuando se emplean sintaxis como CONCURRENTLY o INCLUDE para crear los índices.

  • No se pueden crear índices en columnas definidas mediante expresiones.

Parámetros

Para usar la función Elastic Parallel Query y acelerar la creación de índices, configure los siguientes parámetros.

Parámetro

Descripción

polar_px_enable_btbuild

Indica si se usa esta función para acelerar la creación de índices. Valor predeterminado: off. Valores válidos:

  • off

  • on

polar_px_dop_per_node

Define el grado de paralelismo aplicado al acelerar la creación de índices con esta función. El valor predeterminado es 1. Se recomienda establecer el valor en 8 o 16.

Este parámetro también define el grado de paralelismo de Elastic Parallel Query. Para obtener más información, consulte .

También puede configurar este parámetro en on para un rol de base de datos específico.

polar_px_enable_replay_wait

Si establece polar_px_enable_btbuild en on, el parámetro polar_px_enable_replay_wait entra en vigor automáticamente para la sesión actual. Esto garantiza que las entradas más recientes de la tabla se incluyan en el índice. Una vez creados los índices, el sistema restablece el parámetro a su valor predeterminado en la base de datos.

polar_bt_write_page_buffer_size

Define la política de operaciones de E/S de escritura durante la creación de índices. De forma predeterminada, el parámetro tiene el valor 0. Este valor indica que las entradas indexadas se escriben en disco por bloques al crear los índices. La unidad de medida es el bloque. El valor máximo es 8192. Se recomienda establecer el valor en 4096.

  • Si establece este parámetro en 0, todas las entradas de una página de índice se escriben en disco bloque por bloque cuando la página se llena durante la creación del índice.

  • Si establece este parámetro en un valor distinto de 0, las entradas indexadas pendientes de escritura se almacenan en un búfer del kernel cuyo tamaño corresponde al indicado por el parámetro. Cuando el búfer se llena, todas sus entradas se escriben en disco de una sola vez. Esto evita la sobrecarga de rendimiento provocada por una programación frecuente de E/S. Este parámetro ayuda a reducir en un 20 % el tiempo necesario para crear índices.

Ejemplos

Contexto

Ejecute la siguiente instrucción para crear una tabla llamada test:

CREATE TABLE test(id int,id2 int);

Consulte el esquema de la tabla:

\d test
               Table "public.test"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 id     | integer |           |          |
 id2    | integer |           |          |

Siga estos pasos para usar Elastic Parallel Query y acelerar la creación de índices en la tabla test:

  1. Establezca el parámetro polar_px_enable_btbuild en on para usar la función Elastic Parallel Query y acelerar la creación de índices.

    Ejecute la siguiente instrucción:

    SET polar_px_enable_btbuild=on;

    Compruebe que la configuración haya surtido efecto.

    SHOW polar_px_enable_btbuild;

    Se devuelve el siguiente resultado:

      polar_px_enable_btbuild
    -------------------------
     on
    (1 row)
  2. Ejecute la siguiente instrucción para crear los índices:

    CREATE INDEX t ON test(id) WITH(px_build=on);

    Consulte el esquema de la tabla:

    \d test
                   Table "public.test"
     Column |  Type   | Collation | Nullable | Default
    --------+---------+-----------+----------+---------
     id     | integer |           |          |
     id2    | integer |           |          |
    Indexes:
        "t" btree (id) WITH (px_build=finish)
Nota

Para usar la función Elastic Parallel Query y acelerar la creación de índices, agregue la opción px_build en la instrucción CREATE INDEX.

Una vez creados los índices, la información del tipo de índice incluye el campo (px_build=finish). Este campo indica que los índices se crearon mediante la función Elastic Parallel Query.

Si polar_px_enable_btbuild está configurado en on, pero no se agrega la opción px_build en la instrucción CREATE INDEX, se utiliza el método nativo de para crear los índices. Ejemplo:

CREATE INDEX t ON test(id);

Consulte el esquema de la tabla:

\d test
                Table "public.test"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 id     | integer |           |          |
Indexes:
    "t" btree (id)

Datos de rendimiento

Crear índices en una tabla grande con la función Elastic Parallel Query es aproximadamente cinco veces más rápido que hacerlo con el método nativo de .