性能:从数据库中获取数据或替换它以生成新数据

Performance: fetching data from Database or replacing it to make new data

我不想开始讨论,所以我将问题限制在数字范围内。

我的 MySQL 数据库中有一个 table,它有 3099916 条记录。现在 table 的两列除了一个字符外是相同的。

在我的例子中,它们是来自同一图像的 URL 和 Thumbnail_URL。

URL 字符串的大小为 72 个字符。

     like image URL is  12345sss_a.jpg
while Thumbnail URL is  12345sss_b.jpg

现在什么对我更好,即最有效的方法

  1. 从 table 中获取两个 URL。
  2. 从 table 中获取一个并通过替换一个字符制作第二个。

您只能将上传的图片名称存储到数据库中,并将真实图片和缩略图上传到服务器并为其命名,例如imagename_80x80.jpg, imagename_200x200.jpg.

当你想显示任何图片时,只需从数据库中获取图片的真实名称,然后将图片大小添加到你想要的缩略图大小即可。

通过这种方式,您可以上传多个缩略图并提高查询性能。

加一用于基准测试。

但实际上,除非您在某处有资源限制,否则我怀疑您能否分辨出差异。

这一切都是基于假设,但我猜您有 PHP 代码可以根据某些条件检索图像信息。其中昂贵的部分是 "where" 子句 - 如果它很慢,其他一切都会很慢。

您从该查询中 return 的列数对性能没有明显影响,除非您 return 正在使用大量列,或者这些列非常大。

因此,您还可以在同一个查询中同时检索图像和缩略图列。

另一方面 - PHP 中的字符串替换功能也非常快,所以再次 - 除非你在页面上显示大量图像,否则你不太可能看到可测量的差异.如果您在页面上显示大量图像,下载时间和浏览器呈现比 PHP 字符串替换...

更成问题

仅存储 12345sss。选择时,添加后缀以获取图像或缩略图。

取决于您的数据库的大小

在目前的情况下更换要好得多,因为你的 table 相当大。