我有一个页面必须从1 db,3个表中获取数据。我使用php / mysql。
现在,每次页面需要数据时,它都会调用一个创建新连接的函数,获取特定数据并关闭连接。
我应该这样做以增加装载时间吗?它会引人注目吗?
当页面加载时,它会调用一个函数来创建一个新连接,从3个表中获取数据,将它们放入一个数组中,然后返回它。然后我会使用数组来解析需要的数据。为了减少连接/关闭的次数。
另外,我应该为3个表使用一个数组,将其从函数中返回,拆分它。 或者为每个表使用1个数组,并从函数中返回3个数组。
现在一切正常,但我担心加载时间。
非常感谢。
答案 0 :(得分:0)
如果你没有关闭连接,php会使用之前打开的连接。
我认为,这是最好的解决方法。因为你,你不需要每次都获取数组。可能是,根本不需要它。
答案 1 :(得分:0)
您应该指定哪种表格。它们是否与外键相连或完全不相关?
通常,应该打开连接以便与数据库进行整个通信,但应尽快进行。因此,工作流程应如下所示:
假设它是3个选择没有关系,你需要一次全部:
您应该打开与数据库的连接,并为每个数据库单独返回选择返回数组。将它们放在一个然后解析它们似乎是一种开销。最后,你应该关闭连接。
假设表格相关:
您应该使用join并在一个select中获取数据。
假设3次选择太昂贵,您需要在一次选择中获取所有数据:
您可以使用union来聚合数据,然后将其拉入一个选择,然后解析结果。但是,它并不常见。此外,代码的可读性更差。
答案 2 :(得分:0)
您可以使用memcached或redis来加载时间。 如果你保持连接打开,连接更新。你的连接限制将超过。
查看此https://stackoverflow.com/a/4779560/237564
和
http://www.sitepoint.com/an-introduction-to-redis-in-php-using-predis/