我有一个应用程序,它访问一个平面文件系统,我必须决定它的结构。我的文件系统为用户存储了每年每天的数据,每天的数据具有形式为HH:mm, value
的信息。我的数据访问通常限制在1个月左右。我的目录结构选项是,
1.
FileSystem > UserA > 2010_01_01, 2010_01_02
,即对于每个用户,将每天的数据存储为一个文件。,
2.
FileSystem > UserA > 2010_01, 2010_02
,即对于每个用户,将一个月的数据存储为一个文件。
使用1
意味着当我获取用户数据时,我有更频繁的文件打开/关闭和更少的文件读取(以到达我需要的行),而使用2
意味着更少的文件打开/关闭和更多的文件读取(以到达我需要的行)。我用什么会更好?
注意:我意识到1
可以让我在不同的线程中访问不同的文件,可能会加快速度。
考虑每个打开的文件实际上是几次读取,并且大的读取并不比小的读取贵多少。此外,硬盘驱动器在物理上被限制一次只能访问磁盘的单个部分,因此多个线程可能无法帮助您,除非每个线程从不同的磁盘读取数据。