Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Indizierung im Hintergrund ist eine Technik, mit der ein Datenbanksystem Indizierungsvorgänge für eine Auflistung ausführen kann, ohne andere Abfragen oder Aktualisierungen zu blockieren. Azure DocumentDB akzeptiert die Indizierungsanforderung im Hintergrund und führt sie asynchron aus.
Wenn Sie kleinere Ebenen oder Workloads mit hoher E/A-Auslastung verwenden, definieren Sie vordefinierte Indizes für leere Sammlungen, und verzichten Sie auf die Hintergrundindizierung.
Von Bedeutung
Erstellen Sie eindeutige Indizes für eine leere Sammlung, da eindeutige Indizes im Vordergrund erstellt werden und Lese- und Schreibvorgänge blockieren. Definieren Sie Indizes basierend auf Abfrage-Prädikaten, bevor Sie Daten einfügen, während die Auflistung noch leer ist. Dadurch wird der Ressourcenkonflikt in großen Sammlungen mit hohem Lese- und Schreibdatenverkehr reduziert.
Überwachen des Indexaufbaus
Wir erfahren mehr über den Fortschritt des Indexbuilds mithilfe des Befehls currentOp().
db.currentOp("db_name":"<db_name>", "collection_name":"<collection_name>")
-
db_nameist ein optionaler Parameter. -
collection_nameist optionaler Parameter.
// Output for reviewing build status
{
inprog: [
{
shard: 'defaultShard',
active: true,
type: 'op',
opid: '10000003049:1701252500485346',
op_prefix: Long("10000003049"),
currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
secs_running: Long("2"),
command: {createIndexes: '' },
op: 'command',
waitingForLock: true
},
{
shard: 'defaultShard',
active: true,
type: 'op',
opid: '10000003050:1701252500499914',
op_prefix: Long("10000003050"),
currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
secs_running: Long("2"),
command: {
createIndexes: 'BRInventory', },
indexes: [
{
v:2,
key: {vendorItemId: 1, vendorId: 1, itemType: 1},
name: 'compound_idx'
}
],
'$db': 'test'
op: 'command',
waitingForLock: false,
progress: {
blocks_done: Long("12616"),
blocks_done: Long("1276873"),
documents_d: Long("0"),
documents_to: Long("0")
},
msg: 'Building index.Progress 0.0098803875. Waiting on op_prefix: 10000000000.'
}
],
ok: 1
}
Einschränkungen
- Eindeutige Indizes können nicht im Hintergrund erstellt werden. Es ist am besten, sie in einer leeren Sammlung zu erstellen und dann die Daten zu laden.
- Die Hintergrundindizierung erfolgt sequenziell innerhalb einer einzelnen Sammlung. Die Anzahl der gleichzeitigen Indexbuilds für verschiedene Auflistungen ist jedoch konfigurierbar (Standard: 2).