Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Database 将图像存储在数据库或文件系统中_Database_Image_Database Design_File_Filesystems - Fatal编程技术网

Database 将图像存储在数据库或文件系统中

Database 将图像存储在数据库或文件系统中,database,image,database-design,file,filesystems,Database,Image,Database Design,File,Filesystems,可能重复: 将图像存储在文件系统中更快更可靠,还是应该将其存储在数据库中 假设图像大小不超过200 MB。目标是快速、可靠的访问 一般来说,人们如何决定将文件(如图像、PDF)存储在文件系统中还是存储在数据库中?使用数据库方法,您只有一个连接对象。如果您的用户是分布式的,那可能会更简单。请注意,如果图像访问不太频繁,效率问题可能无关紧要。个人观点:我总是将图像存储在文件系统中,而只在数据库中存储文件路径。在许多情况下,数据库存储在fast(读取:昂贵的存储、15k RPM或SSD驱动器)存储上

可能重复:

将图像存储在文件系统中更快更可靠,还是应该将其存储在数据库中

假设图像大小不超过200 MB。目标是快速、可靠的访问


一般来说,人们如何决定将文件(如图像、PDF)存储在文件系统中还是存储在数据库中?

使用数据库方法,您只有一个连接对象。如果您的用户是分布式的,那可能会更简单。请注意,如果图像访问不太频繁,效率问题可能无关紧要。

个人观点:我总是将图像存储在文件系统中,而只在数据库中存储文件路径。在许多情况下,数据库存储在fast(读取:昂贵的存储、15k RPM或SSD驱动器)存储上。图像或其他文件通常可以存储在较慢(读取:更便宜、更大的驱动器、7.2k RPM驱动器)的存储器上

我发现这是最好的,因为它允许数据库保持较小的大小。通常,数据库很好地存储“数据”。他们可以快速搜索和检索少量数据。文件系统很好地存储“文件”,它们经过优化,可以快速查找和检索更大的数据位

显然,这两种方法都有折衷之处,而且不会一刀切;但是,在某些使用情况下,将图像存储在数据库中是一件好事,如果它们都很小,并且您预计不会有很多图像,并且您的数据库与您的文件共享位于同一存储介质上,那么将图像直接放入数据库可能是有意义的


顺便说一句,SQL Server 2008R2有一个FileStream字段类型,它可以提供最好的两个方面,我还没有使用过它,所以我无法说明它的工作情况。

如果您需要以下内容,请在数据库中存储文件/图像:

  • 访问控制
  • 版本控制
  • 入住/退房
  • 基于元数据的搜索
这就是像SharePoint这样的大型CMS的设计


但是,如果您的内容更加静态,并且不会随着时间的推移而改变,您可以使用文件系统并在web服务器上启用优化/缓存。

首先,您必须知道,在数据库中,您不能存储比我认为的8MB大的文件,因此我认为最好将文件存储在系统中,还有数据库中的小图像

我喜欢它,一个名为“Crashalot”的程序员这取决于数据库。SQL Server最多可以存储2GB(或者“仅仅”1GB?)。写得很好——并指出一些数据库具有访问数据库外主数据的规定。如果我只需要访问控制,是否可以对Web服务器和文件系统执行访问控制(从而避免将映像存储在数据库中)?怎么做?