DBAtlas · Atlas de operações de banco de dados

Criar um índice

Oracle

CREATE INDEX customer_city_idx ON customer(city) ONLINE;

ONLINE o cria sem bloquear a tabela. Use CREATE UNIQUE INDEX para único; (a, b) para composto.

PostgreSQL

CREATE INDEX CONCURRENTLY customer_city_idx ON customer(city);

CONCURRENTLY não bloqueia as escritas na tabela, mas não pode ser executado dentro de um bloco de transação e é mais lento.

MySQL

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

O InnoDB adiciona a maioria dos índices online; em tabelas grandes, permita escritas com LOCK=NONE.

SQL Server

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

ONLINE é um recurso da Enterprise. Para colunas 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 é ordem ascendente, -1 descendente. Em coleções grandes, criar primeiro em um secondary reduz a carga.

Redis

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

Índices secundários só vêm com o módulo RediSearch; no Redis core, o acesso é por chave.

Abrir no DBAtlas →