我正在考虑是否应该为具有〜1TB Twitter tweet信息的客户端设计数据库,还是将其数据存储在磁盘上。客户端当前具有1TB的推文数据存储在具有自己结构的文件中。例如,如果我是Twitter用户'1234',那么他的文件结构将有一个名为'1234'的文件夹,其中包含许多.txt文件,其中包含我的tweet数据。
我已经做过一些研究,以下是我认为可以帮助解决我的问题的主要考虑因素:
1)数据是静态的-没有插入/修改/删除元素
2)客户端将执行许多潜在的查询/访问
3)数据不是分层的-除了具有相同用户的推文之外,推文之间几乎没有关系
4)数据集巨大-约1 TB
5)没有严格的架构-有些tweet包含一些信息,而另一些则没有。这使我相信,如果我要使用数据库,则应该使用NoSQL。
6)机器内存仅为4 GB,因此相对于数据集大小,我建立的任何缓存都将非常小。另外,可能会有许多潜在的不同查询,因此我认为缓存不会大大提高效率。
7)当前文件结构的每个目录中都有许多.txt文件-没有嵌套结构。
8)这是供单个客户的私人研究使用的-我不必太担心安全性或损害用户数据。
这留下两个问题:
1)我应该将数据传输到数据库吗?在这种情况下,数据库会更快吗?
2)我应该使用哪些特定的技术来加快数据访问速度?
我对此进行了一些研究,我非常乐意接受那些对我有帮助的文献链接。另外,我在咨询我的问题的同时访问了这些网站:
Storing large amounts of data in a database
Is it faster to access data from files or a database server?
谢谢! :)