gpt4 book ai didi

c - 一个大文件还是多个小文件?

转载 作者:太空狗 更新时间:2023-10-29 16:58:22 25 4
gpt4 key购买 nike

我有一个应用程序(目前用 Python 编写,因为我们确定了细节,但最终它将用 C 编写)使用存储在纯文本文件中的个人记录。我们不能使用数据库,需要定期手动添加新记录。

我的问题是:拥有一个文件 (500k-1Mb) 并让我的应用程序打开、循环、查找和关闭文件会更快,还是将记录分开并使用一些命名会更快适当的约定,以便应用程序可以简单地遍历文件名以找到它需要的数据?

我知道我的问题很笼统,所以对有关该主题的任何好文章的指导与建议一样受到赞赏。

非常感谢您抽出时间,丹

最佳答案

本质上,您的第二种方法是索引 - 只是您在文件系统本身中构建索引。这本身并没有什么问题,只要您安排好事情,使您不会在一个目录中获得太多文件,它就会非常快。

您可以通过使用多级目录来实现“不要在一个目录中放置太多文件”的目标——例如,键为 FOOBAR 的记录可能存储在 data/F/FO/FOOBAR 中 而不仅仅是 data/FOOBAR

或者,您可以通过构建一个包含(排序的)键偏移对列表的索引文件来使单个大文件的性能也一样。目录作为索引方法失败的地方是当你想搜索与你用来创建文件名的键不同的键时——如果你使用了一个索引文件,那么你可以为这种情况创建第二个索引。

您可能需要重新考虑“我们不能使用数据库”的限制,因为无论如何您实际上只是在构建自己的数据库。

关于c - 一个大文件还是多个小文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com