在SQL数据库中存储大量文本(例如html页面)是个好主意吗?或者将它作为html文件存储在文件系统中是一个更好的主意?
图像也是如此 - 将图像数据存储在数据库中或者更好地将它们放在磁盘上是一个好主意吗?
例如,存储大量数据会导致性能问题吗?每种存储方法的优缺点是什么?
就数据的大小而言,在这种情况下,我正在查看HTML的"几页"区域和大小小于500kb的图像(尽管可能要小很多).足以产生您的平均文章/博客条目/等比例网页.
在数据库中存储二进制数据(文档,图像等)具有一些优点.
您可以在与要存储的有关文档的信息(名称,日期等)相同的事务中提交文档本身的更新.这意味着您不必担心编写自己的两阶段提交(尽管ISTR SQL Server 2008有此解决方案).
您可以一次备份整个批次(文档和元数据),而无需担心必须将数据库与文件系统同步
您可以非常简单地通过.NET Web服务提供文档,因为它们直接进入DataTables,只需将DataTables放入DataSet并传递它就可以毫不费力地进行序列化.
您可以将数据库安全性应用于对象,以及其他数据,而不必担心网络文件权限.
它也有一些缺点:
备份可能会变得非常大
数据库中二进制对象的大小可能比它最初来自的文件大得多,因此在客户端 - 服务器环境中,它可以增加在网络上打开它们所花费的时间.
根据应用程序的不同,如果必须提供大量大型文档,则可能需要考虑数据库服务器上的负载.
总而言之,这是我广泛使用的一种技术,而且效果非常好.