DBAtlas · Atlas für Datenbankbetrieb

Index anlegen

Oracle

CREATE INDEX customer_city_idx ON customer(city) ONLINE;

ONLINE baut ihn ohne Sperren der Tabelle auf. Für eindeutige Indizes CREATE UNIQUE INDEX verwenden; (a, b) für zusammengesetzte.

PostgreSQL

CREATE INDEX CONCURRENTLY customer_city_idx ON customer(city);

CONCURRENTLY blockiert keine Schreibzugriffe auf die Tabelle, kann aber nicht in einem Transaktionsblock laufen und ist langsamer.

MySQL

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

InnoDB legt die meisten Indizes online an; bei großen Tabellen Schreibzugriffe mit LOCK=NONE erlauben.

SQL Server

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

ONLINE ist ein Enterprise-Feature. Für abdeckende Spalten INCLUDE (col1, col2) verwenden.

MongoDB

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

1 ist aufsteigende, -1 absteigende Reihenfolge. Bei großen Collections reduziert der Aufbau zuerst auf einem Secondary die Last.

Redis

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

Sekundärindizes gibt es nur mit dem Modul RediSearch; Core-Redis greift über den Key zu.

In DBAtlas öffnen →