数据库还是文件系统?

时间:2011-10-12 13:49:16

标签: database

我知道有几个类似的问题,但我找不到能解决我特定问题的问题:

我需要在服务器中为我正在开发的游戏保存一些数据 每个用户将在请求后保存一个二进制文件并保留一段时间 该文件可以是一堆字节到大约50kb之间的东西。

许多问题(主要是关于图像)都说使用文件系统,因为该文件可以作为静态内容提供。在这种情况下,这是不可能的,因为我将不得不检查我正在将该文件发送给正确的用户,并且我还需要一些逻辑只有当用户已经拥有的文件时才返回该文件。

我应该将该文件保存在数据库中还是文件系统中?

注意:服务器将托管在Linux上,而DB可能会由MySQL托管。

谢谢!

3 个答案:

答案 0 :(得分:3)

我担心你没有提供足够的信息来正确回答你的问题。如果我“天真地”阅读你的问题,你所要做的就是编写一个保存游戏系统。

在这种情况下,文件系统就是您所需要的。 DB适用于存储您要搜索,求和,组合和索引的结构化数据,而不是用于存储任意一堆小blob。

现在,如果还有其他要求,例如,你正在编写一个基于网络的游戏,将所有玩家的数据存储在一个中心位置,答案可能会有所不同(同样,你需要提供更多细节)关于你在做什么,但是)

答案 1 :(得分:1)

我建议通过Microsoft研究阅读this whitepaper(对BLOB或不对BLOB:数据库或文件系统中的大对象存储)(它处理SQL Server 2005)。

结论是 - 如果文件低于250kb,请使用DB存储它们

  

实质上,   文件系统似乎有更好的碎片处理   而不是数据库,这推动了盈亏平衡点   从大约1MB到大约256KB。

当然,您应该测试自己的数据库和操作系统。

答案 2 :(得分:0)

我认为您可以使用某种数据库。文件系统很慢,导致它进入硬盘,移动头找文件。使用db,访问​​速度更快。如果您的服务器托管在Windows上,则可以使用微软数据库访问,这种操作很少而且速度很快。