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

Reconstruire / réorganiser un index

Oracle

ALTER INDEX customer_city_idx REBUILD ONLINE;

ONLINE reconstruit sans verrouiller la table (Enterprise Edition). Pour le déplacer vers un autre tablespace : ... REBUILD TABLESPACE new_ts.

PostgreSQL

REINDEX INDEX CONCURRENTLY customer_city_idx;
-- Whole table: REINDEX TABLE CONCURRENTLY customer;

CONCURRENTLY (PG 12+) reconstruit sans bloquer les écritures sur la table ; plus lent mais sûr.

MySQL

-- Rebuild InnoDB indexes + table:
ALTER TABLE customer ENGINE=InnoDB, ALGORITHM=INPLACE, LOCK=NONE;
-- Alternative: OPTIMIZE TABLE customer;

LOCK=NONE autorise les écritures concurrentes ; INPLACE n'est pas possible pour tous les ALTER.

SQL Server

-- Rebuild for high fragmentation:
ALTER INDEX ALL ON dbo.customer REBUILD WITH (ONLINE = ON);
-- Lighter option for low fragmentation:
-- ALTER INDEX ALL ON dbo.customer REORGANIZE;

Seuil courant : 5-30 % de fragmentation REORGANIZE, >30 % REBUILD. ONLINE est une fonctionnalité Enterprise.

MongoDB

db.customer.reIndex()

Reconstruit tous les index au premier plan et verrouille la collection. En 6.0+, il ne s'exécute que sur un standalone (interdit sur les membres d'un replica set) ; sur un replica set, reconstruisez un index unique avec dropIndex + createIndex, nœud par nœud (rolling).

Redis

# Not applicable (core). If RediSearch is used:
# FT.ALTER / rebuilding is done per the module documentation.

Le modèle clé-valeur n'a pas de maintenance d'index traditionnelle.

Ouvrir dans DBAtlas →