我应该将MYSQL请求分组与否

时间:2013-12-06 14:09:06

标签: php mysql arrays

我有一个页面必须从1 db,3个表中获取数据。我使用php / mysql。

现在,每次页面需要数据时,它都会调用一个创建新连接的函数,获取特定数据并关闭连接。

我应该这样做以增加装载时间吗?它会引人注目吗?

当页面加载时,它会调用一个函数来创建一个新连接,从3个表中获取数据,将它们放入一个数组中,然后返回它。然后我会使用数组来解析需要的数据。为了减少连接/关闭的次数。

另外,我应该为3个表使用一个数组,将其从函数中返回,拆分它。 或者为每个表使用1个数组,并从函数中返回3个数组。

现在一切正常,但我担心加载时间。

非常感谢。

3 个答案:

答案 0 :(得分:0)

如果你没有关闭连接,php会使用之前打开的连接。

我认为,这是最好的解决方法。因为你,你不需要每次都获取数组。可能是,根本不需要它。

答案 1 :(得分:0)

您应该指定哪种表格。它们是否与外键相连或完全不相关?

通常,应该打开连接以便与数据库进行整个通信,但应尽快进行。因此,工作流程应如下所示:

  1. 做事(例如准备数据)
  2. 打开连接
  3. 使用数据库
  4. 关闭连接
  5. 做事(例如过程数据)
  6. 假设它是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/