Algorithm 存储字符串+;文件系统中的描述
我有超过1亿个字符串要存储在文件系统中。与字符串(~255Chars utf8)一起,将有两个日期和一些定义其属性的整数值 我可以把它们放在一个CSV文件中,但它会很大。我可以将几个较小的CSV文件放在子目录中以加快速度,或者我可以简单地为每个字符串创建一个文件并将它们存储在目录树中 我如何知道哪种解决方案更快、更易于维护/开发?我甚至不知道我的弦有多稀疏;也许我有5000万个以相同的字符开头的树,因此这棵树就不那么平衡了 现在我想我可以用前5个字符创建一个目录结构,然后将csv文件放在每个目录中。字符串“我不知道我在做什么”->“我不知道我在做什么”进入 /i/d/o/n/t/list.csv 还有更好的主意吗?我不能使用Db。我使用java来存储文件系统,如果这有什么区别的话,我使用php来读取文件系统。Algorithm 存储字符串+;文件系统中的描述,algorithm,csv,file-storage,Algorithm,Csv,File Storage,我有超过1亿个字符串要存储在文件系统中。与字符串(~255Chars utf8)一起,将有两个日期和一些定义其属性的整数值 我可以把它们放在一个CSV文件中,但它会很大。我可以将几个较小的CSV文件放在子目录中以加快速度,或者我可以简单地为每个字符串创建一个文件并将它们存储在目录树中 我如何知道哪种解决方案更快、更易于维护/开发?我甚至不知道我的弦有多稀疏;也许我有5000万个以相同的字符开头的树,因此这棵树就不那么平衡了 现在我想我可以用前5个字符创建一个目录结构,然后将csv文件放在每个目录
- 具有索引的数据库将更为优化
- 以下是固定记录大小的警告
如何搜索字符串将是一个二进制搜索log N,搜索1亿条记录,这将是~27 IO读取。也许可以看看Redis——这取决于你想用字符串做什么——它是快速和可伸缩的。这就是数据库开发的目的……以sqlite为例,如果您想要易于访问的内容,请不要使用自制解决方案。有了这么多的数据,现有的数据库解决方案就可以了。如果不允许安装数据库,我无法想象你会被允许在共享主机上存储1亿个文件。我几乎可以保证,数据库解决方案将比搜索顺序文件消耗更少的CPU时间。谢谢,但我不能使用它。可能是.sqllite@mobinoob-可能你没有读我的全部答案(我的格式不好)。我概述了一个只使用平面文件的完全无SQL的方法。完全是我的错。对不起:(