Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La indexación en segundo plano es una técnica que permite a un sistema de base de datos realizar operaciones de indexación en una colección sin bloquear otras consultas ni actualizaciones. Azure DocumentDB acepta la solicitud de indexación en segundo plano y la realiza de forma asincrónica en segundo plano.
Al usar niveles o cargas de trabajo más pequeños con E/S elevadas, predefina índices en colecciones vacías y evite confiar en la indexación en segundo plano.
Importante
Cree índices únicos en una colección vacía porque los índices únicos se compilan en primer plano y bloquean las lecturas y escrituras. Defina índices basados en predicados de consulta antes de insertar datos mientras la colección sigue vacía. Esto reduce la contención de recursos en colecciones grandes con tráfico intensivo de lectura y escritura.
Supervisión de la compilación de índices
Podemos obtener información sobre el progreso de la compilación del índice mediante el comando currentOp().
db.currentOp("db_name":"<db_name>", "collection_name":"<collection_name>")
-
db_namees un parámetro opcional. -
collection_namees un parámetro opcional.
// 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
}
Limitaciones
- No se pueden crear índices únicos en segundo plano. Es mejor crearlos en una colección vacía y, a continuación, cargar los datos.
- La indexación en segundo plano se realiza secuencialmente dentro de una sola colección. Sin embargo, el número de compilaciones de índices simultáneos en diferentes colecciones es configurable (valor predeterminado: 2).