Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 文件流与文件表_Sql Server_Filetable_Sqlfilestream_Sql Server 2008_Sql Server 2012 - Fatal编程技术网

Sql server 文件流与文件表

Sql server 文件流与文件表,sql-server,filetable,sqlfilestream,sql-server-2008,sql-server-2012,Sql Server,Filetable,Sqlfilestream,Sql Server 2008,Sql Server 2012,我想在sql数据库中存储图像。图像大小介于50kb到1mb之间。我在读一篇关于文件流和文件表的文章,但我不知道该选哪一个。每行将有2个图像和一些其他字段 这些图像永远不会被更新/删除,每天将插入约3000行 在这种情况下,推荐哪一种?视情况而定。我个人会预先将链接发送到表中的图像。它更简单,目录中的文件可以单独备份 您必须考虑以下几点: 您将如何处理图像。只有链接允许您轻松地将imges合并到web页面中(使用web服务器的propper配置) 图像的数量是多少?如果它们存储在数据库中并且数量很

我想在sql数据库中存储图像。图像大小介于50kb到1mb之间。我在读一篇关于文件流和文件表的文章,但我不知道该选哪一个。每行将有2个图像和一些其他字段

这些图像永远不会被更新/删除,每天将插入约3000行


在这种情况下,推荐哪一种?

视情况而定。我个人会预先将链接发送到表中的图像。它更简单,目录中的文件可以单独备份

您必须考虑以下几点:

  • 您将如何处理图像。只有链接允许您轻松地将imges合并到web页面中(使用web服务器的propper配置)

  • 图像的数量是多少?如果它们存储在数据库中并且数量很大,这将增加数据库和备份的大小

  • 映像是否经常更改?在这种情况下,最好将它们放在DB中,以便将备份的实际状态放在DB中


  • 最初,将文件(=二进制数据)存储在数据库中总是一个坏主意。通常的解决方法是将文件路径存储在数据库中,并确保该路径上确实存在文件。不过,可以使用
    varbinary(MAX)
    数据类型将文件存储在数据库中

    在中引入并处理
    varbinary
    列,方法是不将数据存储在数据库文件(仅一个指针)中,而是存储在文件系统上的另一个文件中,从而显著提高了性能

    是与filestream一起引入的,是对filestream的增强,因为它直接向SQL提供元数据,并且允许访问SQL之外的文件(您可以浏览到这些文件)

    建议:一定要利用FileStream,同时使用FileTable也不是一个坏主意


    更多阅读(简短):

    在SQL Server中,blob可以是标准的
    varbinary(max)
    数据,将数据存储在表中,也可以是FILESTREAM
    varbinary(max)
    对象,将数据存储在文件系统中。数据的大小和用途决定了您应该使用数据库存储还是文件系统存储

    如果下列条件为真,则应考虑使用文件流:

    • 正在存储的对象平均大于1 MB
    • 快速读取访问非常重要
    • 您正在开发使用中间层作为应用程序逻辑的应用程序
    对于较小的对象,在数据库中存储varbinary(max)blob 通常提供更好的流式传输性能

    FILETABLE的优点:

    • 存储在SQL Server数据库中的文件数据的Windows API兼容性。Windows API兼容性包括以下内容:

      • 对FILESTREAM数据的非事务性流式访问和就地更新
      • 目录和文件的分层命名空间
      • 文件属性的存储,如创建日期和修改日期
      • 支持Windows文件和目录管理API
    • 与其他SQL Server功能的兼容性,包括管理工具、服务和对FILESTREAM和文件属性数据的关系查询功能


    这可能的重复只是回答了是否使用Filestream的问题。