相关疑难解决方法(0)

如何使用Scala将1亿条记录加载到MongoDB中进行性能测试?

我有一个用Scala编写的小脚本,用于加载具有100,000,000个样本记录的MongoDB实例.我们的想法是让数据库全部加载,然后进行一些性能测试(并在必要时调整/重新加载).

问题是每100,000个记录的加载时间相当线性增加.在我的加载过程开始时,只需4秒即可加载这些记录.现在,在接近6,000,000条记录中,加载相同数量(100,000)需要300到400秒!那要慢两个数量级!查询仍然很快,但按照这个速度,我永远无法加载我想要的数据量.

如果我用我的所有记录(全部100,000,000!)编写一个文件,然后使用mongoimport导入整个文件,这会更快吗?或者我的期望是否过高而且我使用的数据库超出了应该处理的范围?

有什么想法吗?谢谢!

这是我的脚本:

import java.util.Date

import com.mongodb.casbah.Imports._
import com.mongodb.casbah.commons.MongoDBObject

object MongoPopulateTest {
  val ONE_HUNDRED_THOUSAND = 100000
  val ONE_MILLION          = ONE_HUNDRED_THOUSAND * 10

  val random     = new scala.util.Random(12345)
  val connection = MongoConnection()
  val db         = connection("mongoVolumeTest")
  val collection = db("testData")

  val INDEX_KEYS = List("A", "G", "E", "F")

  def main(args: Array[String]) {
    populateCoacs(ONE_MILLION * 100)
  }

  def populateCoacs(count: Int) {
    println("Creating indexes: " + INDEX_KEYS.mkString(", "))
    INDEX_KEYS.map(key => collection.ensureIndex(MongoDBObject(key -> 1)))

    println("Adding " + count + " records …
Run Code Online (Sandbox Code Playgroud)

testing scala performance-testing mongodb nosql

38
推荐指数
2
解决办法
2万
查看次数

mongo DB集合、文档和数据库的大小限制

过去几个月我一直在学习和工作 MongoDB,现在我对每个文档 16 MB 的最大大小限制感到非常困惑。我只是想知道,这个 16 MB 大小限制是否适用于集合内的单个文档,或者此限制也适用于单个集合。

由于我有一个包含酒店架构的集合,因此我将在其中添加超过 5,00,000 个文档作为酒店信息。

我试图找出每个集合的最大限制,但没有找到一些信息。我真的很欣赏这里的一些亮点。

limit mongodb

2
推荐指数
1
解决办法
5836
查看次数

标签 统计

mongodb ×2

limit ×1

nosql ×1

performance-testing ×1

scala ×1

testing ×1