相关疑难解决方法(0)

在DB中存储图像 - 是还是不?

所以我正在使用一个将图像存储在数据库中的应用程序.你对此有何看法?我更像是一种在文件系统中存储位置的类型,而不是直接将它存储在数据库中.

您认为利弊是什么?

database theory storage blob image

415
推荐指数
25
解决办法
59万
查看次数

要做或不做:将图像存储在数据库中

在Web应用程序的上下文中,我的老板总是说在数据库中引用了一个图像,而不是图像本身.我倾向于同意在数据库中存储网址与图像本身是一个好主意,但在我现在工作的地方,我们在数据库中存储了大量图像.

我能想到的唯一原因可能是它更安全吗?你不希望有人直接链接到网址吗?但如果是这种情况,您可以随时让网站/服务器处理图像,例如asp.net中的处理程序,以便用户需要进行身份验证才能查看图像.我也在考虑从数据库中提取图像会损害性能.将图像存储在数据库中可能是一个好/不太好的想法的任何其他原因?


完全重复: 用户映像:数据库还是文件系统存储?
完全重复: 在数据库中存储图像:是或不是?
完全重复: 我应该将我的图像存储在数据库还是文件夹中?
确切重复: 您是否将二进制数据存储在数据库或文件夹中?
完全重复:将 图片存储为Web应用程序的文件或数据库?
确切重复: 存储少量图像:blob还是fs?
精确复制: 将图像存储在文件系统或数据库中?

database performance blob

32
推荐指数
7
解决办法
4万
查看次数

如何在文件系统中存储图像

目前,我在InnoDB表中将图像(最大6MB)存储为BLOB.随着数据量的增长,夜间备份越来越慢,阻碍了正常的性能.

因此,二进制数据需要转到文件系统.(指向文件的指针将保存在数据库中.)

数据具有树关系:

- main site
  - user_0
    - album_0
    - album_1
    - album_n
  - user_1
  - user_n
etc...
Run Code Online (Sandbox Code Playgroud)

现在我希望数据通过目录结构均匀分布.我该怎么做到这一点?

我想我可以尝试MD5('userId, albumId, imageId');切片结果字符串以获取我的目录路径:

  /var/imageStorage/f/347e/013b/c042/51cf/985f7ad0daa987d.jpeg

这将允许我将第一个字符映射到服务器,并将目录结构均匀分布在多个服务器上.

然而,这不会保持每个用户组织的图像,可能将图像分散在多个服务器上的1个专辑中.

我的问题是:
在保持用户/专辑数据在一起的同时,以平衡的方式将图像数据存储在文件系统中的最佳方法是什么?

我在想正确的方向吗?或者这是完全做事的错误方式?

更新:
我将为md5(user_id)最高级别的拆分进行字符串切片.然后将所有用户数据放在同一个存储桶中.这将确保数据的均匀分布,同时保持用户数据紧密存储在一起.

  /var
   - imageStorage
     - f/347e/013b
       - f347e013bc04251cf985f7ad0daa987d
         - 0
           - album1_10
             - picture_1.jpeg
         - 1
           - album1_1
             - picture_2.jpeg
             - picture_3.jpeg
           - album1_11
             - picture_n.jpeg
         - n
           - album1_n

我想我会使用从后面拆分的albumId(我喜欢这个想法!),以保持每个目录的专辑数量更小(尽管大多数用户不需要).

谢谢!

database file-organization blob data-structures

30
推荐指数
2
解决办法
1万
查看次数

存储图像:数据库或文件系统 -

我在这方面读了一些帖子,但我仍然不明白在我的情况下什么是最好的解决方案.

我开始编写一个新的webApp,后端将提供大约1-10万个图像.(单张图片的平均尺寸为200-500kB)

我的网站将同时向100-1000个用户提供内容和图像.

我还希望尽可能降低提供商的成本(但这是次要要求).我认为与DB大小的成本相比,文件系统空间更便宜.

就个人而言,我喜欢将所有图像都放在数据库中,但任何建议都会非常感激:)

您认为在我的情况下DB方法是正确的选择吗?

database filesystems storage image

15
推荐指数
4
解决办法
1万
查看次数

将图像数据存储在MySQL数据库中?

我正在实施一个处理大量图像的项目.

在您看来,以下两种方法的缺点是什么?

  • 我需要存储数千个项目,每个项目作为多个字符串属性和图像.
  • 每个项目作为ID(整数)
  • MyISAM表
  • 你将如何存储图像:
    • 方法1:将图像存储到目录中,每个图像命名为ID.jpg
    • 方法2:将图像作为二进制BLOB存储到数据库中

使用方法1我可以直接访问图像,就是这样

<img src="same_directory/10.jpg" />  
Run Code Online (Sandbox Code Playgroud)

使用方法2,我仍然可以使用上面的HTML,但需要将jpg访问重定向到PHP脚本,该脚本将从数据库返回真实图像.

在性能方面哪一个你觉得它更快?

我很想接近1.

mysql image

10
推荐指数
2
解决办法
8849
查看次数

9
推荐指数
3
解决办法
2万
查看次数

将图像存储在数据库中

可能重复:
在DB中存储图像 - 是或否?

多年来,我被告知不要将图像存储在数据库中,也不要将任何大型BLOB存储在数据库中.虽然我可以理解为什么数据库没有/没有效率,我从来没有理解为什么他们不能.如果我可以将文件放在某处并引用它,为什么数据库引擎也不能这样做.我很高兴Damien Katz在最近的Stack Overflow播客中提到它,Joel Spolsky和Jeff Atwood,至少默默地同意了.

我一直在阅读Microsoft SQL Server 2008应该能够有效处理BLOB的提示,这是真的吗?如果是这样,有什么阻止我们在那里存储图像并摆脱一个问题?我能想到的一件事是,虽然图像可以很快地由静态Web服务器提供,如果它是某个文件,当它在数据库中时,它必须从数据库传输到Web服务器应用程序(这可能比静态Web服务器)然后它被服务.不应该缓存帮助/解决最后一个问题?

database blob image sql-server-2008

9
推荐指数
1
解决办法
5422
查看次数

存储少量图像:blob还是fs?

我正在为我的网站添加一些功能,以便用户可以上传他们自己的个人资料图片,所以我想知道是将它们作为BLOB存储在数据库中,还是将它们放在文件系统中.

我在这里找到了一个类似的问题:在DB中存储图像:Yea或Nay,但给出的答案更倾向于人们期待数千甚至数百万的图像,而我更关心的是小图像(JPEG图像直到可能是150x150像素),而且数量很少:可能高达一两千.

对于这种情况,DB BLOB vs Filesystem有什么感受?客户端如何使用来自DB和文件系统的缓存映像?

如果存储在数据库中的BLOB是要走的路-有什么我应该知道哪里来存储它们?由于我想我的大多数用户都不会上传图片,我是否应该在需要时创建一个user_pics表(外部)连接到常规users表?


编辑:我正在重新打开这个问题,因为它与你链接的那两个重复.这个问题具体是关于使用DB或FS来处理少量图像的优缺点.正如我上面所说,另一个问题是针对需要存储数千个大图像的人.

database blob image

8
推荐指数
1
解决办法
5031
查看次数

为基于Web的应用程序存储和检索大视频文件的最佳方法?

我正在制作视频分享网站.所以我在想什么是存储大量视频文件的最佳方式.这样,访问它们时速度和性能都会很快.

我问我的同事,他们说将文件存储在硬盘文件夹上效率不高,因为在许多读/写操作中它会非常慢.

有人建议存储在mysql blob中.

我在这里很困惑!

让我知道你们的想法?

mysql blob video-processing

6
推荐指数
1
解决办法
8758
查看次数

我应该将上传的(img文件)保存到App_Data吗?

我正在使用asp.net mvc,并有一个用户可以上传图像的部分.我想知道我应该在哪里存储它们.

我正在学习本教程,他似乎将它存储在app_data中.然而我读了另一个人说它应该只保存你的数据库.

所以不确定使用app_data有什么好处.我在共享主机上,所以我不知道这是否有所作为.

编辑

我打算在数据库中存储图像的路径.然后,我将在图像标记中使用它们,并在用户访问我的网站时将其呈现给用户.我有一个文件上传器只会期望图像(检查将是客户端和服务器)

c# asp.net-mvc asp.net-mvc-3

6
推荐指数
1
解决办法
6301
查看次数