Ein Index ist eine Nachschlagestruktur, die die Datenbank zusätzlich zu einer Tabelle vorhält, um Datensätze schnell zu finden – vergleichbar mit dem Stichwortverzeichnis am Ende eines Buches.
Ohne Index muss die Datenbank für eine Abfrage wie „alle Positionen der Sendung 4711“ jede Zeile der Tabelle prüfen (vollständiger Tabellen-Scan). Bei wenigen Datensätzen ist das unproblematisch, bei Millionen von Zeilen wird es langsam. Ein Index über das Feld shipment hält eine sortierte Liste der Sendungs-IDs vor, über die die Datenbank direkt zu den passenden Zeilen springt.
Einstellungen
Indizes können bei den folgenden Typdefinitionen angelegt werden: Eigener Entitätstyp, Eigenes singuläres Attribut, Eigenes plurales Attribut und Eigenes typisiertes Attribut, Eigene referenzierte Entität.

Name | Beschreibung |
|---|---|
Name | Der Name des Index. Der Editor ergänzt automatisch das Präfix |
Eindeutig | Ist diese Option aktiviert, lässt die Datenbank keine zwei Datensätze mit denselben Werten in den indizierten Feldern zu. Ein eindeutiger Index über |
Feld zur Indizierung | Ein oder mehrere Felder, die der Index umfasst. Die Reihenfolge der Felder ist relevant (siehe /v1/docs/custom-type-indexes#wann-sinnvoll). |
Wann ein Index sinnvoll ist
Ein Index ist für Felder sinnvoll, nach denen häufig gefiltert, verknüpft oder sortiert wird:
Index | Beschleunigt |
|---|---|
| „Alle Positionen einer Sendung“ – der häufigste Zugriffspfad auf eine untergeordnete Tabelle. |
| Dieselbe Abfrage, zusätzlich nach Position sortiert. |
| Suche oder Filterung nach dem Artikeltext. |
Die Reihenfolge der Felder ist entscheidend. Ein Index über
(shipment, positionNumber)unterstützt auch Abfragen, die nur nachshipmentfiltern – nicht jedoch Abfragen, die nur nachpositionNumberfiltern. Führen Sie das Feld, nach dem Sie immer filtern, zuerst auf.Nicht jedes Feld benötigt einen Index. Jeder Index belegt Speicherplatz und verlangsamt jedes Einfügen und Aktualisieren geringfügig, da die Datenbank ihn pflegen muss. Felder, die Sie nur lesen und nicht durchsuchen (zum Beispiel
quantityodernetWeightKg), benötigen keinen Index.
Validierung
Der Editor lehnt einen Index ab, wenn
er keine Felder enthält,
ein Feld doppelt aufgeführt ist,
ein angegebener Feldname nicht existiert oder
der Feldtyp nicht indizierbar ist.