MongoDB 可以象关系数据库那样分区吗?
小灰狼 2017-08-23 03:51:26 以前在这里发帖问过,数据库是用来存放一些设备的运行数据的,每一分钟由数据采集设备采集设备的实时参数(电流、电压、温度、功率等),设备数量初步估计在两年内会达到20000。
原本数据是存储在 MySQL 中的,但是有资料说 MongoDB 比较适合存储这类数据,于是有准备把数据迁移到 MongoDB 的打算。但是目前还有几个问题需要了解清楚。
原来存储在 MySQL 中的数据,是以分区表的方式存储的,即每半年或者一个季度一个分区,这样做的好处:
1、按照时间查询历史数据时,可以指定分区查询,速度会比较快;
2、在扩展分区时,可以指定数据文件的位置,这样当数据服务器的一块硬盘空间满时,可以增加一块硬盘,并且在扩展分区时把新的分区数据文件存放到指定的分区中;
3、当要删除过期的历史数据时,只要删除那个分区即可,MySQL 会把那个分区文件也删除,并且释放磁盘空间。
现在对 MongoDB 都不太熟,我们初步的方案是,业务数据(用户清单、设备清单、权限、区域等数据)依旧放在 mysql 中,设备历史数据存在 MongoDB 中。但是在 MySQL 中可以解决的前面说的三个问题,在 MongoDB 中如何处理?MongoDB 虽然说查询速度比 MySQL 快很多,但是本人测试一个 Collection 在 70亿行数据量的情况下,查询的响应速度就不能满足需要了;在磁盘空间用尽时如何扩展;历史数据如何清除并释放空间。这几个方面有没有现成的方案。