Sobes.tech
Middle

Wie wird ein Index in einer großen Tabelle verwendet?

sobes.tech KI

Antwort von AI

Der Index in einer großen Tabelle beschleunigt erheblich die Datenabruf-Operationen (SELECT) sowie die Änderungsoperationen (UPDATE, DELETE), wenn die WHERE-Bedingung mit indizierten Spalten verwendet wird. Ohne Index muss die Datenbank die gesamte Tabelle durchsuchen (Full Table Scan), was bei großen Datenmengen sehr langsam ist.

Bei Verwendung eines Index greift die Datenbank zunächst auf die Indexstruktur zu (meist ein B-Baum), die deutlich kleiner ist als die Tabelle selbst und sortierte Verweise auf die Datenzeilen enthält. Wenn die benötigten Verweise im Index gefunden werden, greift die Datenbank schnell direkt auf die erforderlichen Zeilen zu.

Wichtig:

  • Indizes benötigen Speicherplatz auf der Festplatte.
  • Das Erstellen und Pflegen von Indizes bei Einfüge- (INSERT) und Aktualisierungs-Operationen (UPDATE) erfordert zusätzliche Ressourcen.
  • Zu viele Indizes oder falsch gewählte Indizes können Schreiboperationen verlangsamen.

Beispiel für die Erstellung eines Index in Ruby on Rails:

# Erstellen eines Index auf die Spalte 'email' in der Tabelle 'users'
add_index :users, :email

# Erstellen eines eindeutigen Index auf die Spalte 'username'
add_index :users, :username, unique: true

# Erstellen eines zusammengesetzten Index auf die Spalten 'user_id' und 'product_id'
add_index :orders, [:user_id, :product_id]

Beispiel für die Verwendung eines Index in SQL (wird von der Datenbank ausgeführt):

-- Abfrage, die den Index auf die Spalte email nutzt
SELECT * FROM users WHERE email = 'test@example.com';