DBAtlas · Atlas d'exploitation des bases de données

Créer un index

Oracle

CREATE INDEX customer_city_idx ON customer(city) ONLINE;

ONLINE le crée sans verrouiller la table. Utilisez CREATE UNIQUE INDEX pour un index unique ; (a, b) pour un index composite.

PostgreSQL

CREATE INDEX CONCURRENTLY customer_city_idx ON customer(city);

CONCURRENTLY ne bloque pas les écritures sur la table, mais ne peut pas s'exécuter dans un bloc de transaction et est plus lent.

MySQL

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

InnoDB ajoute la plupart des index en ligne ; sur les grandes tables, autorisez les écritures avec LOCK=NONE.

SQL Server

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

ONLINE est une fonctionnalité Enterprise. Pour les colonnes couvrantes, utilisez 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 correspond à l'ordre croissant, -1 à l'ordre décroissant. Sur les grandes collections, construire d'abord sur un secondaire réduit la charge.

Redis

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

Les index secondaires n'existent qu'avec le module RediSearch ; dans Redis de base, l'accès se fait par clé.

Ouvrir dans DBAtlas →