海量数据,有没有必要“分表”?

小灰狼 2017-02-23 09:57:52
一个集合用于存储10W台设备的实时数据,终端每一分钟采集一次数据,并存到数据库中
对数据库的查询,主要是根据设备Id、时间范围,查出的结果用于绘制曲线图,比如温度、湿度等

以前在用关系型数据库时,要么按时间进行分表(tbData2010、tbData2011、tbData0212……),要么按时间进行分区(Oracle、MySQL支持)。应用程序查询时都会要求按 DeviceId、DeviceDateTime 进行查询,如果分了表或者分区之后能够在较小的磁盘范围内查询数据,从而加快查询速度

那么在 MongoDB 中是否有必要这么做?

另外,分了表之后,是不是对数据备份也会好操作一点,我只需一段时间一段时间地备份即可?

谢谢!
...全文
226 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼 2017-02-27
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
不自动释放磁盘
如果把每年的数据作为一个集合,删除这个集合能释放空间吗?
rucypli 2017-02-27
  • 打赏
  • 举报
回复
引用 6 楼 hemowolf 的回复:
[quote=引用 5 楼 rucypli 的回复:] 不自动释放磁盘
如果把每年的数据作为一个集合,删除这个集合能释放空间吗?[/quote] 能
rucypli 2017-02-23
  • 打赏
  • 举报
回复
索引建好,1T的硬盘至少64G内存应该没什么大问题
小灰狼 2017-02-23
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
可以考虑用mongodb的sharding 自动根据分区键分区到不同的机器 对应用透明
你好 如果一块1T的硬盘,全部存储一个集合,查询效率不会有影响吗
rucypli 2017-02-23
  • 打赏
  • 举报
回复
可以考虑用mongodb的sharding 自动根据分区键分区到不同的机器 对应用透明
rucypli 2017-02-23
  • 打赏
  • 举报
回复
不自动释放磁盘
小灰狼 2017-02-23
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
索引建好,1T的硬盘至少64G内存应该没什么大问题
你好 如果1T的数据全部存在一个集合里,备份和其它管理会不会很麻烦 比如要备份某一年的数据,或者删除某一年的数据时,会不会释放磁盘空间?

1,746

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧