DBAtlas · Atlas de operaciones de bases de datos

Crear un índice

Oracle

CREATE INDEX customer_city_idx ON customer(city) ONLINE;

ONLINE lo crea sin bloquear la tabla. Use CREATE UNIQUE INDEX para índices únicos; (a, b) para compuestos.

PostgreSQL

CREATE INDEX CONCURRENTLY customer_city_idx ON customer(city);

CONCURRENTLY no bloquea las escrituras en la tabla, pero no puede ejecutarse dentro de un bloque de transacción y es más lento.

MySQL

CREATE INDEX customer_city_idx ON customer(city);
-- Lock-free: ... ALGORITHM=INPLACE, LOCK=NONE;

InnoDB añade la mayoría de los índices en línea; en tablas grandes permita escrituras con LOCK=NONE.

SQL Server

CREATE NONCLUSTERED INDEX IX_customer_city
ON dbo.customer (city)
WITH (ONLINE = ON);

ONLINE es una función de Enterprise. Para columnas de cobertura use INCLUDE (col1, col2).

MongoDB

db.customer.createIndex({ city: 1 })
// Unique: { city: 1 }, { unique: true }
// Built in the background without blocking (default behavior in 4.2+)

1 es orden ascendente, -1 descendente. En colecciones grandes, crearlo primero en un secondary reduce la carga.

Redis

# Not applicable (core). If RediSearch is present:
# FT.CREATE idx ON HASH PREFIX 1 customer: SCHEMA city TAG

Los índices secundarios solo llegan con el módulo RediSearch; el acceso en Redis básico es por clave.

Abrir en DBAtlas →