我一直在思考其他的解决方案,以加快从我的数据库中检索数据。我现在有一个比较大的数据库,大约有10亿行,而且还在增长。我们预计DB将以每年15亿行(300 DB)的速度线性增长。我的数据库是PostGreSQL on FreeBSD。
数据库包含历史传感器数据,这些数据仅由时间戳、数值和传感器的1个外键组成。这些数据永远不会被更新,只会被写入,并且不会经常被访问。
有了这么多的数据,不可能将所有东西保存在内存中,但如果可能的话,我仍然需要快速的数据检索。我们目前正在查找每个表行的查找时间几乎为6ms,因为每个查找都有最大的查找时间,这是因为每个查找都分布在硬盘上。
我一直在做一些小规模的测试,将数据存储在磁盘上,这似乎要快得多。我们从DB查看1.8s,而从磁盘检索0.2ms (包括值转换)。这差不多快了10,000倍。
这就引出了我的问题:如果我不关心外键一致性,那么不将历史数据作为普通文件存储在磁盘上有什么特殊的原因吗?
发布于 2015-03-05 09:27:27
我想你已经回答了你自己的问题。
如果不需要外键一致性,而且您只需要读取这些数据,那么搜索时间的不同为将历史数据存储为纯文本而不是数据库提供了一个令人信服的理由。
https://dba.stackexchange.com/questions/94459
复制相似问题