【问题标题】:Efficiency of storing file size vs calculating it every time?存储文件大小的效率与每次计算的效率?
【发布时间】:2012-04-02 05:43:50
【问题描述】:

我有一个文件托管站点的系统,它需要一个 PHP 脚本来发送 MIME 类型和文件内容长度的 http 标头。

我面临的问题是:最好将 MIME 类型和文件大小与图像的条目一起存储在数据库中,或者在每次点击时使用 filesize() 和 mime_content_type() 来计算它。

我根据可能的最快加载时间来判断“更好”,但如果速度增加毫无意义,我想避免冗余数据和过大的行大小。

【问题讨论】:

  • 或者是否有某种形式的标准最佳实践之类的?
  • 图像:1000-1000000 字节。文件大小:4 字节。 MIME 类型 [文本]:~10 字节。 MIME 类型 [枚举]:1 个字节。我认为这不会使行大小变得更糟......
  • 我知道存储它相对不占用空间,我更关心冗余数据
  • 您可能也应该删除所有索引。这些都是冗余数据。问题是这些冗余数据是否可以帮助您更快地处理请求。
  • @MitchellGrice:协议的未来发展会怎样?它最终还会包括创建/修改时间、SHA-256 哈希值、exif 标签内容等吗?

标签: php mysql performance filesystems


【解决方案1】:

您要处理数千、数百万或数十亿张图像吗?

如果是数千,则将其存储在数据库中。 (如果您最终多次提供相同的图像,那么它应该是磁盘 IO 的净节省)

如果是数百万或数十亿,则通过使用您的真实流量分析两种解决方案(AB 测试)来正确衡量它。您的其余代码中可能有太多性能变量无法确定!

【讨论】:

  • 介于两者之间,数万到数十万
  • 在不知道您的流量的情况下,我倾向于将它们存储在数据库中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多