检索图像 - 基于MySQL或基于文件系统,哪一个更快?

时间:2010-12-21 11:33:25

标签: php mysql

我想知道通过从数据库获取路径/文件名以及其他数据来检索特定产品或博客文章或网站中的任何内容的图像是否更快/更好,或者如果我只是创建一个带有产品ID的文件夹,并使用glob来迭代它,或者只使用id作为文件名,例如单个图像。

这些方法有哪些优点/缺点?

3 个答案:

答案 0 :(得分:0)

使用路径/名称方法肯定更快( - 1个数据库调用;组成字符串不是消耗时间/内存的操作)。顺便说一句,如果你有相同产品ID的不同图像,你可以创建一个foreach循环,在给定的文件夹中查找pic1.png,pic2.png [...] picn.png。

但是存在一个问题:更改图像将变得更加复杂 - 不仅仅是上传新图像和更新数据库,在上传之前,您必须删除相对缩略图的上一个(或上一个集合)新的;这也意味着图像更改过程不可逆,除非您将旧版本存储在备份目录等中。

那么,(你打算经常改变它们,你的用户会经常更改它们吗?)数据库:路径

答案 1 :(得分:0)

图片..

  1. 想象一下,他们在数据库中。
  2. 想象一下自己缓存它们以提高性能。
  3. 想象一下,你把它们放在一个文件中以便缓存它们。
  4. 丁丁丁。硬盘上的文件中的图像。

答案 2 :(得分:0)

使用包含实际图像文件路径的数据库记录存储图像,可以执行更多操作,例如存储alt文本列或数据库中的任何其他有用信息。您当然需要围绕该想法创建一个良好的内容管理系统,以便能够快速轻松地更改已上传的图像。

我通常为我的所有具有id,filename,alt_text,width和height的图像保留一个表,然后在我可能需要附加图像的所有其他表中引用该表。我还存储了诸如调整大小方法信息之类的额外内容,以便下次他们为同一字段上传图像时,您可以自动获取并设置默认值以获取他们需要输入的任何调整大小信息。

您可能还想存储图像的对齐方式,但我通常将其放入链接到图像表的表中。这允许您进行设置,以便用户可以轻松地在网站的其他区域重新使用已上传的图像,而无需上传该图像的第二个副本。