Es difícil decir cuál es la inserción óptima de volumen, esto depende en parte del tamaño de los objetos que está insertando y otros factores inconmensurables. Podrías probar algunos rangos y ver qué te ofrece el mejor rendimiento. Como alternativa, a algunas personas les gusta usar mongoimport, que es bastante rápido, pero sus datos de importación deben ser json o csv. Obviamente hay mongodrestore, si los datos están en formato BSON.
Mongo puede manejar fácilmente miles de millones de documentos y puede tener miles de millones de documentos en la misma colección, pero recuerde que el maximum document size is 16mb. Hay mucha gente con miles de millones de documentos en MongoDB y hay muchas discusiones al respecto en el MongoDB Google User Group. Aquí hay un document sobre el uso de una gran cantidad de colecciones que le gustaría leer, si cambia de opinión y desea tener múltiples colecciones en su lugar. Cuantas más colecciones tenga, más índices tendrá también, que probablemente no sea lo que desea.
Aquí está un presentation de Craigslist en la inserción de miles de millones de documentos en MongoDB y el tipo blogpost.
Parece que la fragmentación sería una buena solución para usted, pero normalmente la fragmentación se utiliza para escalar en varios servidores y mucha gente lo hace porque quieren escalar sus escrituras o no pueden mantener su conjunto de trabajo (datos e índices) en la RAM. Es perfectamente razonable comenzar con un único servidor y luego pasar a un fragmento o conjunto de réplicas a medida que crecen sus datos o necesita redundancia y capacidad de recuperación adicionales.
Sin embargo, hay otros usuarios que usan varios mongods para evitar los límites de bloqueo de un solo mongod con muchas escrituras. Es obvio, pero aún vale la pena decirlo, pero una configuración multi-mongod es más compleja de administrar que un solo servidor. Si su IO o CPU no está al máximo aquí, su conjunto de trabajo es más pequeño que la RAM y sus datos son fáciles de mantener equilibrados (bastante distribuidos aleatoriamente), debería ver una mejora (con fragmentación en un solo servidor). Como un FYI, hay potencial para la memoria y la contención de IO. Con 2.2 habiendo mejorado concurrency con db locking, sospecho que habrá una razón mucho menor para tal despliegue.
Debe planear su movimiento para fragmentar correctamente, es decir, piense detenidamente acerca de cómo elegir la clave de fragmento. Si sigue así, es mejor dividir previamente y apagar el equilibrador. Será contraproducente mover datos para mantener el equilibrio, lo que significa que tendrá que decidir de antemano cómo dividirlo. Además, a veces es importante diseñar sus documentos con la idea de que algún campo será útil para fragmentación en, o como una clave principal.
Aquí hay algunos buenos enlaces -
A ver si esta respuesta mía le ayuda a: http://stackoverflow.com/ preguntas/6783212/cómo-cargar-100-millones-registros-en-mongodb-con-scala-para-rendimiento-te sting/6786925 # 6786925 – DhruvPathak