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

时间:2016-02-26 10:26:19

标签: php mysql database performance database-performance

我不想开始讨论,所以我将问题留给了数字。

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

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

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

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

现在对我来说更好,即最有效的方式

  1. 从表中提取两个网址。
  2. 从表中获取一个,并通过替换一个字符使其成为第二个。

4 个答案:

答案 0 :(得分:1)

您只能将上传的图像名称存储到数据库中,并将实际图像和拇指图像上传到服务器,并将其名称命名为imagename_80x80.jpg, imagename_200x200.jpg.

当您想要显示任何图像时,只需从数据库中获取图像的真实名称,并将后缀图像大小放在您想要的大小缩略图上。

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

答案 1 :(得分:1)

取决于数据库的大小

在目前的情况下,替换要好得多,因为你的桌子非常大。

答案 2 :(得分:0)

另外一个用于基准测试。

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

这完全基于假设,但我想你有PHP代码可以根据某些标准检索图像信息。其中昂贵的部分是"其中"条款 - 如果那个慢,其他一切都会很慢。

从此查询返回的列数在性能上没有明显差异,除非您返回的是大量列,或者列非常大。

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

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

答案 3 :(得分:0)

仅存储12345sss。选择时,使用后缀来获取图像或拇指。