Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 使用hibernate保存图像文件_Database_Image_Hibernate_Blob - Fatal编程技术网

Database 使用hibernate保存图像文件

Database 使用hibernate保存图像文件,database,image,hibernate,blob,Database,Image,Hibernate,Blob,我搜索了这个,但只找到了将图像作为blob保存到数据库的方法。 我想做的是将图像位置保存在数据库中,然后从该位置自动检索文件,而不是将其作为blob保存到数据库中。 这有什么意义吗?还是将图像文件作为blob保存到数据库中更好、更快、更便宜? 根据不同的地区,我可能会得到不同的图片 谢谢你的帮助 我在这两方面都有经验(将图像保存为RDBMS中的blob)和仅以文件系统/url方式存储指向它的链接。我逐渐意识到第一种方法显然是不可伸缩的 下面是关于每种方法的一个相当有偏见的列表 方法1。将图像保存

我搜索了这个,但只找到了将图像作为blob保存到数据库的方法。 我想做的是将图像位置保存在数据库中,然后从该位置自动检索文件,而不是将其作为blob保存到数据库中。 这有什么意义吗?还是将图像文件作为blob保存到数据库中更好、更快、更便宜? 根据不同的地区,我可能会得到不同的图片


谢谢你的帮助

我在这两方面都有经验(将图像保存为RDBMS中的blob)和仅以文件系统/url方式存储指向它的链接。我逐渐意识到第一种方法显然是不可伸缩的

下面是关于每种方法的一个相当有偏见的列表

方法1。将图像保存为水滴:

缺点:

  • 当图像数量增加时,数据库大小和 您仅限于运行RDBMS引擎的文件系统

  • 当您想要检索大量这些blob时,如果 尺寸太大,会浪费IO/bandwdith,给您的计算机带来压力 RDBMS引擎。理想情况下,您希望它具有执行的简短查询 快速并移动少量字节。你就是不能得到 如果将数据保存为关系数据库中的BLOB。 虽然有些人可能认为对于可重复查询,缓存将 帮个忙,我会争辩说如果那些大块的数据不在那里,我就不知道了 首先,我不必把它们放在缓存里

  • db管理员/内容管理器没有可靠的方法可以轻松 例如,检索以db为单位的blob的内容以进行验证 如果图像被破坏。他必须连接到db,然后 以某种格式提取BLOB字节,然后查看它。或 或者,你可以建立一些网页,为他这样做,但那 在我看来,这将是一个糟糕的组合手法

  • 优点:

  • 您不必依赖可用的或外部的文件系统 在其上承载图像的系统将可用。你会的 也许写的代码少一点,你就能更好地控制 你的代码,因为所有你想要的东西都在你的RDBMS中
  • 方法2。将图像保存为指向文件系统的链接/URL

    优点:

  • 大大减轻了RDBMS引擎的性能压力

  • 如果将图像存储为链接,则系统管理员/内容管理器 只需在浏览器中复制链接并 验证它是否正确呈现

  • 如果您不使用外部图像托管服务,而是使用 在内部,您仍然保留了大量的控制权,同时 未来添加更多映像托管服务器的可能性/ 文件系统

  • 如果您有大量正在检索的图片,并且 不由您托管,您可以分配大量网络负载 使加载时间更快

  • 缺点:

  • 事情会有点分散,这会给应用程序增加一些复杂性。如果您使用的是外部托管服务,它可能会关闭,您无法控制它
    总之,我衷心建议使用第二种方法。

    总的来说,我同意@baba的答案

    然而,这实际上取决于图像的数量和大小。如果所有的图像都是小缩略图,那么我会将它们存储在数据库中,这样所有的东西都在一个地方

    也可以同时执行这两种操作……只要数据库和文件系统都有可用的存储空间。这为您提供了两全其美和内置备份