Junior
Was ist Indexierung im Kontext von Datenbanken oder Sammlungen?
sobes.tech KI
Antwort von AI
Indexierung ist eine Technik zur Leistungsoptimierung beim Datenabruf.
In Datenbanken ist ein Index eine Struktur (z.B. B-Baum), die es ermöglicht, Zeilen in einer Tabelle schnell zu finden, ohne die gesamte Tabelle zu durchsuchen. Er wird auf einer oder mehreren Spalten erstellt.
In Sammlungen (z.B. ArrayList in Java) ist die Indexierung im Wesentlichen integriert. Elemente werden in einer geordneten Sequenz gespeichert, und der Zugriff auf ein Element nach Index (seiner Positionsnummer) erfolgt in O(1).
Hauptziele der Indexierung:
- Beschleunigung der Abfrageausführung: Besonders bei
SELECT-Operationen mitWHERE- undJOIN-Bedingungen. - Sicherstellung der Einzigartigkeit: Einzigartige Indizes garantieren, dass die Werte in der indexierten Spalte oder Kombination von Spalten eindeutig sind.
- Unterstützung bei Sortierung: Indizes können verwendet werden, um Ergebnisse schnell zu sortieren (
ORDER BY).
Beispiele für die Verwendung in SQL:
-- Erstellen eines Index auf der Spalte price
CREATE INDEX idx_products_price ON products (price);
-- Erstellen eines zusammengesetzten Index auf den Spalten customer_id und order_date
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);
In Sammlungen, Zugriff nach Index:
// Element nach Index abrufen
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String firstElement = names.get(0); // Zugriff nach Index 0
Nachteile der Indexierung:
- Benötigt zusätzlichen Speicherplatz.
- Datenänderungsoperationen (INSERT, UPDATE, DELETE) werden langsamer, da auch der Index aktualisiert werden muss.
- Wird nicht immer vom Abfrageoptimierer verwendet (z.B. bei vollständigen Tabellenscans).