Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
El índice de MongoDB crece en la actualización

Estamos utilizando AWS DocumentDB v3.6.0. Queremos usar la funcionalidad de índice TTL de MongoDB para eliminar elementos después de un período de tiempo. Los artículos se actualizan con frecuencia hasta que ocurre un evento especial. Por lo tanto, debemos actualizar el campo ttl con frecuencia.

 db.test.insertOne({_id: "12345",ttl: new Date()}) db.test.createIndex({ttl:-1},{expireAfterSeconds: 3600})

db.stats() produce el siguiente resultado esperado:

 [ { "avgObjSize": 51, "capped": false, "count": 1, "indexSizes": { "_id_": 16384, "ttl_-1": 16384 }, "nindexes": 2, "ns": "db.test", "ok": 1, "size": 51, "storageSize": 16384, "totalIndexSize": 32768 } ]

Sin embargo, si actualizamos la marca de tiempo ttl de nuestro elemento, el índice ttl_-1 sigue creciendo.

 for (let i = 1; i < 1000; i++) { db.test.updateOne({ _id: "12345" }, { $set: { ttl: new Date() } }); }

db.stats() ahora produce:

 [ { "avgObjSize": 51, "capped": false, "count": 1, "indexSizes": { "_id_": 16384, "ttl_-1": 90112 }, "nindexes": 2, "ns": "db.test", "ok": 1, "size": 51, "storageSize": 65536, "totalIndexSize": 106496 } ]

Como puede ver, el índice ttl_-1 es más grande que el índice _id_ aunque todavía tenemos un solo elemento. ¿Por qué?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Las sobrescrituras de datos en el lugar tienen varios problemas. Por ejemplo, si realiza una escritura de este tipo y se queda sin energía, no solo se perderán los nuevos datos, sino que también terminará destruyendo los datos que ya estaban en la base de datos.

Por esta razón, no es de extrañar que cualquier escritura asigne nuevo espacio de almacenamiento.

1000 escrituras (¿90 KB de datos?) no son suficientes para concluir que el índice está creciendo sin límites. Pruebe con un millón, o la cantidad que necesite para obtener el índice superior, por ejemplo, 64 MB.

over 4 years ago · Santiago Trujillo Denunciar

0

¿Has intentado soltar y recrear el índice? En su ejemplo, el índice _id_ solo se inserta (nunca se actualiza) y no experimenta la renovación que experimenta el índice ttl_-1. Sería interesante ver el antes y el después en su ejemplo simple, así como en la base de datos DocumentDB de tamaño completo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda