如果Microsoft构建MOSS以便将所有数据写入SQL Server数据库,为什么所有开发最佳实践都建议将文件等保存在数据库之外,即文件系统上?
一切顺利
答案 0 :(得分:1)
我会说所有最佳做法都没有说你应该使用文件系统来存储文件。它总是取决于具体情况。当您拥有单个服务器时,在文件系统上存储文件很好,但是当文件需要位于多个服务器上时,您必须管理复制。备份数据库通常比数据库和文件更容易。所有这些情况都可以管理,但您需要灵活。
答案 1 :(得分:0)
这是一个哲学项目。事务完整性是将文件存储在DB中的好处。随之而来的是诸如膨胀事务日志之类的缺点。
如果在未来版本的Sharepoint中,MS使用SQL 2008的文件流功能为您提供了“在数据库外部存储文件”的选项,我不会感到惊讶。
答案 2 :(得分:0)
由于性能问题:保存数据库的往返只是为了获取页面布局,而不利于性能。
另一方面,使用本地文件系统上的文件来提高性能可以减少自定义选项。
答案 3 :(得分:0)
如果您希望让网站用户编辑这些文件,则必须将文件保留在数据库中。 SharePoint专为大多数可编辑的文件而设计,因此可以存储在数据库中。
如果您作为应用程序架构师知道除了解决方案版本之外不会编辑某些高使用率文件(页面布局,主页等),您可以选择将页面存储在文件系统上。
存储在文件系统上的访问性能读数很小,因为不需要数据库往返。例如,网站中的每个页面都需要使用母版页,因此将其存储在文件系统中将会在高用户需求期间提高性能。
SQL 2008能够管理数据库“外部”的事实表明此功能不仅仅适用于SharePoint。
答案 4 :(得分:0)
保持SharePoint页面不自定义允许在第一次执行时编译页面的一个实例,然后保存在内存中并重复用于所有相同类型的页面。自定义页面不共享此行为的原因是因为它们是唯一的,并且一旦ApplicationDomain加载dll就无法卸载它。因此,每次请求都会解析自定义页面。
答案 5 :(得分:0)
你从哪里获得这些“最佳实践”?
根据我对MS和MOSS的经验,我应该说从未听说过这样的最佳实践,除了一个非常特殊的情况......我会说这不是一个好习惯。
您的部署方式并不容易......管理员用户必须知道在哪里可以找到要修改的文件,备份就像地狱等等
但是,正如我所说......可能在特定情况下它可能有用。
答案 6 :(得分:0)
SharePoint有一个名为 ghosing 的技术,它正在缓存文件系统中的分页。