我需要在数据库中存储一堆时间序列,但我担心大小和处理时间。
为了减小我已经使用过的大小,在另一个项目中,压缩/JSON 来存储整个时间序列,这在存储空间方面非常有效。但问题是要搜索一些数据,您必须首先检索整个时间序列,解压缩并反序列化它,当然您不能使用SQL SELECT/WHERE 等数据库集成查询功能。
因此,即使您只需要一点,您也会消耗带宽来获取数据、CPU来解压缩、RAM来存储......
这对于上一个项目来说不是问题,因为时间序列总是作为一个整体进行操作,本质上是在图表或 Excel 中显示,但这次我希望在数据库中搜索数据的能力最低。
为了在数据操作方面允许这种灵活性,例如使用 SQL,有“标准格式”:按日期一行,但我有两个问题:
- 超过 10 年的时间序列可能有 3000 个值,所以这意味着 3000 行,所以想象一下,如果我有 1M 时间序列,我可以有 3G 行!我不确定像 MySQL 或 PostgreSQL 这样的“普通”数据库是否可以处理如此大量的行,但希望我错了
- 我不知道 DBMS 是否擅长优化所有单元所需的空间,虽然它不是“太大”但没关系
我可以选择任何免费的数据库,所以如果可以提供帮助,也欢迎使用NoSQL 。
你有什么建议,或者更好的一些反馈?
感谢您的任何意见。