MongoDB与MySQL查询性能对比

日期: 2010-08-29 作者:Bory.Chan 来源:TechTarget中国 英文

  最近想用Mongodb做些存储层的事情。目前主要用在id查询或ids查询(如mysql的 in 查询)。新的方案能否上线还要看性能。现在把 mongodb 与 mysql 来对比下。

  环境:同一台机器,装有 mongodb 1.4, mysql;内存 4g;两个数据库都只有 id 的唯一搜索;数据量 120w 左右,5w 个查询。对它们进行 id 或 ids 查询。

mongodbmysql
total timeavg time/per querytotal timeavg time/per query
1 id/per query11954ms, 00:11,9540ms, 00,078613ms, 00:1:18,6131ms, 00,1
10 id/per query35885ms, 00:35,8850ms, 00,0107274ms, 00:1:47,2742ms, 00,2
20 id/per query63714ms, 00:1:3,7141ms, 00,1186398ms, 00:3:6,3983ms, 00,3
5 thread, 20 id/per query5ms, 00,511ms, 00,11
10 thread, 20 id/per query10ms, 00,1022ms, 00,22

  从上表看:

  每次查一个 id 的查询,在基本相同条件下 mongodb 速度是 mysql 的 7 倍。

  每次查多个 id (10/20)的查询,mongodb 比 mysql 快 2 倍。

  多线程下查多个 id,mongodb 比 mysql 快 1 倍。

  从上面的测试来看:主要用在 id 查询或 ids 查询的应用中 mongodb 要优越 mysql。

  在插入这些数据的时候,mongodb 更加快于 mysql,插入120w 到 mongodb 用 83159ms, ->00:1:23,159 就够了。mysql 有几十分钟。

  当我在实际应用中(kw 级数据量),使用 mongodb 速度没有 mysql 好。原因可能有,mysql 的机器好,mongodb 使用不够得当。继续调整和优化程序吧……

  附 mongodb 的 in 查询:

  BasicDBObject q = new BasicDBObject();
  BasicDBObject in = new BasicDBObject();
  void createQ(Integer[] ids) {
  q.put(“id”, in);
  in.put(“$in”, ids);
  }

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐