PostgreSQL: índice parcial

En PostgreSQL, el

DÓNDE

Syntax:
SELECT * 
FROM table_name
WHERE column_name = constant_value;

Con fines de demostración, trabajaremos con la tabla de clientes de la base de datos de muestra, es decir, dvdrental .

Ejemplo:

SELECT
    customer_id,
    first_name,
    last_name,
    email
FROM
    customer
WHERE
    active = 0;

clienteEXPLICAR

EXPLAIN SELECT
    customer_id,
    first_name,
    last_name,
    email
FROM
    customer
WHERE
    active = 0;

Esto conducirá a lo siguiente:

activo

CREATE INDEX idx_customer_active
ON customer(active);

Este índice cumple su propósito, sin embargo, incluye muchas filas que nunca se buscan, es decir, todos los clientes activos. Para definir un índice que incluya solo clientes inactivos, use la siguiente declaración:

CREATE INDEX idx_customer_inactive
ON customer(active)
WHERE active = 0;

DÓNDE

EXPLAIN SELECT
    customer_id,
    first_name,
    last_name,
    email
FROM
    customer
WHERE
    active = 0;

Producción:

Syntax:
CREATE INDEX index_name
ON table_name(column_list)
WHERE condition;

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *