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

Php 性能:从数据库获取数据或替换数据以生成新数据,php,mysql,database,performance,database-performance,Php,Mysql,Database,Performance,Database Performance,我不想开始讨论,所以我的问题要保密 我的MySQL数据库中有一个表,它有3099916条记录。现在,表中的两列除了一个字符外是相同的 在我的例子中,它们是来自同一图像的URL和缩略图URL URL字符串的大小为72个字符 like image URL is 12345sss_a.jpg while Thumbnail URL is 12345sss_b.jpg 现在,什么对我来说更好,即最有效的方法 从表中获取两个URL 从表中取出一个字符,替换一个字符,使其成为第二个字符 您只

我不想开始讨论,所以我的问题要保密

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

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

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

     like image URL is  12345sss_a.jpg
while Thumbnail URL is  12345sss_b.jpg
现在,什么对我来说更好,即最有效的方法

  • 从表中获取两个URL
  • 从表中取出一个字符,替换一个字符,使其成为第二个字符

  • 您只能将上载的图像名称存储到数据库中,并将真实图像和拇指图像上载到服务器,并给出它们的名称,如
    imagename\u 80x80.jpg,imagename\u 200x200.jpg。

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


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

    加上一个用于基准测试

    但事实上,我怀疑你能否分辨出两者的区别,除非你在某个地方有资源限制

    这都是基于假设,但我猜您有PHP代码,可以根据一些标准检索图像信息。这其中最昂贵的部分是“where”条款——如果这很慢,那么其他一切都会很慢

    从该查询返回的列数对性能没有明显的影响,除非返回的列数很大,或者列非常大

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


    另一方面,PHP中的字符串替换函数也非常快,所以再次强调,除非您在页面上显示了大量图像,否则您不可能看到明显的差异。如果在页面上显示大量图像,下载时间和浏览器呈现比PHP字符串替换更重要。

    仅存储
    12345sss
    。选择时,在后缀上加上图钉以获得图像或拇指。

    取决于数据库的大小


    在目前的情况下,替换要好得多,因为您的表相当大。

    为什么不对两个选项进行基准测试,然后选择最好的?明白了。谢谢你的建议。总是
    \u a
    \u b
    吗?然后,您实际上可以去掉一列并在PHP中添加后缀,而不仅仅是遵循Rick James的答案。只存储图像文件名stem,并在需要的地方添加后缀。这样,您只需要一列,这将使查询数据库的速度大大加快(特别是有一个好的索引)。我投票将这个问题作为离题题题来结束,因为这可能因计算机而异,在询问者的情况下,应该很容易进行基准测试。我想您没有完全理解我的问题。