sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB $ segmento (paginación de matriz incrustada)

Así que voy a decir que debe cambiar su esquema para dejar comentarios como documentos separados, ya que esta es una matriz independiente y hará que sus consultas sean más eficientes. Lo explicaré.

Cuando agrega documentos incrustados a una matriz que no tiene un tamaño fijo, mongoDB posiblemente necesitará mover el documento a medida que crece, cambiando el factor de relleno y causando fragmentación (el factor de relleno es una suposición del lado de mongodb sobre qué tan grande será su documento crecer, preasigna más espacio para ese caso).

También está limitado a 16 MB por documento, así que imagine que si obtiene un hilo muy popular o si decide ampliar los comentarios con otros metadatos, es posible que rompa esa barrera. Recuperar un documento grande también es costoso y requiere mucho tiempo.

En general, los documentos incrustados son excelentes si no son matrices independientes. Por lo tanto, mantener una lista de los 10 comentarios principales funcionará muy bien, pero mantener más de 1000 comentarios es malo.

Hay algunas buenas presentaciones debajo

http://www.10gen.com/presentations /mongodb-berlin/2012/10-indicadores-clave-de-rendimiento http://www.10gen.com/presentations/mongosv -2011/diseño-de-esquema-por-ejemplo

Creo que pronto habrá más trabajo sobre el diseño del esquema que será más útil a largo plazo. Creo que es la parte más difícil para ser honesto. Lo sé, me tomó un tiempo entender las diferencias con los modelos relacionales.