关于 mongodb 频繁写操作的性能问题

2017-01-12 18:03:22 +08:00
 langzizx39

我有个系统每小时有差不多两百万的数据进来,这些数据几乎所有最终都要写库,但不是所有数据都是插入,而是大部分为更新操作。库中个别表量越堆越多,最多的已经接近 6 千万,少的也有千万以上,而且还在缓慢增长。于是我发现写入时间越来越慢,目前写库的平均时间需要 50 到 70ms ,那么我想请教一下大家:

  1. 我的 mongodb 这个写入时间是不是正常?
  2. 我 mongodb 的版本为 2.6.4 ,是库锁。如果升级 3.0 以上支持表锁之后性能会不会提升非常明显?(比如平均写入时间缩短为 20ms 以下甚至更小)
  3. 关于拆表:目前有定时任务在跑,定时移动旧数据到历史表,但是这个扫描全表并移动的过程也很漫长(今天凌晨 2 点跑到现在都没跑完)。所以还有没有更好的拆表方案?
  4. mongodb 是不是本身更偏重于读操作,所以我的场景不适用 mongodb ?
  5. 其它哪些库更适用于我的应用场景?

希望大家指导一下我这个资历尚浅新手,谢谢大家!

4291 次点击
所在节点    程序员
24 条回复
langzizx39
2017-01-13 10:33:39 +08:00
@shiny 感谢回复!目前我 update 的条件都是有索引的,而且也是批量的,就还不知道是不是不确认就返回,我会去试试看的。
janxin
2017-01-13 10:50:12 +08:00
@langzizx39 是的,最开始测试的机器 IO 比较差
smallpath
2017-01-13 10:51:29 +08:00
mongo 最高到表锁???? 黑人问号???
SlipStupig
2017-01-13 21:35:06 +08:00
@langzizx39 我机器比较差双核 4G 内存,机械盘,写入速度大概 1000/s

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX