2011-04-20 56 views
0

可能重复:
MySQL - storing images in a database??存储图像的网页

我正在为我的网页的简介系统上,但是我想知道什么来存储图像的最佳方式。

我已阅读关于在MySQL使用BLOB第一种方法。第二,我打算如何做到这一点,首先,我会从上传脚本获取图像,然后给图片一个id(md5),然后重命名并将图片移动到名为“md5”.jpg的文件夹中

我在想,最好的选择是什么。

+8

叹息...这已被问及回答约50 kajillion gazillion时间在这个网站上... – 2011-04-20 16:13:58

+0

我试过寻找这个,也许你可以链接我也是以前的问题? – aaaa 2011-04-20 16:16:26

+0

你试图搜索什么查询? – 2011-04-20 16:17:32

回答

3

我已经看到这个问题之前弹出,普遍接受的答案是将您的图像存储在一个文件夹中,然后将该URL存储在数据库中。我认为使用BLOB将图像存储在数据库在技术上是可行的,但从我在线阅读的文档和共识中,这不是一个理想的情况。

数据库往往适用于数字,字符串和数据文件。

以下是关于这个网站你问这个问题的一些链接:

Storing images on a database

Storing Images in DB - Yea or Nay?

+0

数据库可以很好地处理data _files_? – 2011-04-21 18:18:23

+0

@Nicklamort - 是的,这是BLOB SQL数据类型是什么(二进制大对象)这里是一个有趣的描述的链接:[链接] http://searchsqlserver.techtarget.com/definition/BLOB – hypervisor666 2011-04-23 18:35:19

+0

啊,我明白了。好男人+1 = P – 2011-04-25 16:24:52

0

都很好。但我一直选择使用实际的文件给图像一个id。这是因为你的服务器和php必须为blob做更多的工作。

1

Choosing data type for MySQL?

MySQL是不能与任何 数据大于 max_allowed_pa​​cket个工作(默认值:1M)在 大小,除非你在 服务器端构建复杂 和内存激烈的解决方法。这进一步限制了 可以使用类似TEXT/BLOB的 类型进行的操作,并且通常会使 LARGETEXT/LARGEBLOB类型在 默认配置中无用。

所以小心你的斑点我喜欢把图像存储在硬盘上和数据库中的路径/ ID。存储在数据库中的优点非常小,并且速度可能会变慢。

0

最好的办法可能是实际的文件存储在网络/文件服务器上,并且只存储链接到数据库中该文件。这可以防止数据库服务器因不必要的繁忙工作而陷入困境。

0

数据库存储可以有一定的优势,常常被遗忘。

  • 您可以将您的图像与您的数据库一起备份,不需要此文件系统备份。

  • 当您的网站获得交通拥挤

当然

它不适合,如果你有大量的图片,可能是更容易的规模。如用户贡献的内容等

,但如果你有一点点的报纸网站不具有许多文章在网上,可以完美专卖店缩略图在数据库中,在复制的奴隶建立自己的系统。

但是...说实话:

店您在Amazon S3上的图像。简单的API,冗余,高可用性和负载均衡的存储为便宜。

+0

我总是喜欢没有评论的downvotes。 – 2011-04-20 16:27:11

+0

我也很好奇CSS和js文件。 pdf,swf和xls等也被计算在内。将整个站点内容存储在数据库中以使文件系统备份真的变得不必要了吗?他们的文件系统备份是否邪恶? – 2011-04-20 16:28:41

+0

你需要照顾,监视,编程和维护的另一件事。如果你只是有图像(如问题中所述),并且没有太多(如我的答案中所述),它可能更容易。我从来没有使用过这个字,并给出了一个有效的例子。想象一下你有一个只有文本为基础的大文章的网站。现在你想要一个小图像在Facebook上作为预览显示。你是否真的想为它设置一个filesytem解决方案? – 2011-04-20 16:33:51

0

我建议保存为普通静态文件。然后将它们的文件名存储在数据库中。您可以提取匹配的文件名和file_get_contents图像数据或直接链接到实际图像文件。

不要将图像数据本身存储在数据库中。