インデックスを再構築/再編成
Oracle
ALTER INDEX customer_city_idx REBUILD ONLINE;ONLINE はテーブルをロックせずに再構築する(Enterprise Edition)。別の表領域へ移動するには: ... REBUILD TABLESPACE new_ts.
PostgreSQL
REINDEX INDEX CONCURRENTLY customer_city_idx;
-- Whole table: REINDEX TABLE CONCURRENTLY customer;CONCURRENTLY(PG 12+)はテーブルへの書き込みをブロックせずに再構築する。低速だが安全。
MySQL
-- Rebuild InnoDB indexes + table:
ALTER TABLE customer ENGINE=InnoDB, ALGORITHM=INPLACE, LOCK=NONE;
-- Alternative: OPTIMIZE TABLE customer;LOCK=NONE は同時書き込みを許可する。すべての ALTER で INPLACE が可能とは限らない。
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;一般的なしきい値: 断片化 5-30% なら REORGANIZE、>30% なら REBUILD。ONLINE は Enterprise の機能。
MongoDB
db.customer.reIndex()フォアグラウンドですべてのインデックスを再構築し、コレクションをロックする。6.0+ ではスタンドアロンでのみ実行可能(レプリカセットのメンバーでは不可)。レプリカセットでは、dropIndex + createIndex で単一のインデックスをノードごとに(ローリング)再構築する。
Redis
# Not applicable (core). If RediSearch is used:
# FT.ALTER / rebuilding is done per the module documentation.キーバリューモデルには従来のインデックスメンテナンスがない。