我想开发一个开源库,用于像NFileStorage这样的快速高效的文件存储(在一个大文件和索引文件下)。我为什么要这样做?
答:在我的工作范围内,像waS这样的东西是需要的。
我们的数据库管理员说在数据库下存储文件效率不高。
这对我来说是一个很好的练习。
我在找一篇关于文件索引的好文章,你能推荐一篇吗?
你的总体想法是什么?
发布于 2011-09-16 02:40:29
在数据库中存储文件可能效率不高,但是像SQL Server这样的数据库有FileStreams的概念,它实际上将文件存储在本地文件系统上,而不是放在数据库文件本身中。
在我看来,这对于一个项目来说不是一个好主意。
您将遇到与数据库在同一单个文件中存储所有上传的文件时遇到的完全相同的问题...这就是为什么他们中的一些人对二进制/大对象已经不再使用这种方法,而是支持其他方法。
您需要处理的一些问题包括:
为备份文件分配额外的磁盘空间以存储新上载的文件,并从存储中删除“文件”并调整/压缩备份file.
第1项和第2项会导致将“文件”写入数据存储所需的时间增加。第3、4和5项已经被网络文件系统支持,所以您只是在重新创建轮子。
简而言之,您将不得不编写自己的文件系统或编写自己的DBMS。对于99%的实际应用程序,我认为这两者都不是“好的做法”。如果你的目标是为希捷工作,这可能是值得的。但即便如此,他们也可能会奇怪地看着你。
如果您确实对最有效的文件存储方法感兴趣,那么只需购买一个SAN阵列并将文件推送到其中,同时保留一个指向数据库中文件/位置的指针即可。易于备份,快速存储文件,比花费开发人员时间尝试编写自己的文件系统要便宜得多,而且肯定是100%被未来的开发人员支持和理解。
发布于 2011-09-16 02:39:50
这种产品已经存在了。您应该阅读有关Mongo Db (http://www.mongodb.org/display/DOCS/Home)的内容
https://stackoverflow.com/questions/7435746
复制相似问题