Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

137
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!