Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL请求是否应该分组_Php_Mysql_Arrays - Fatal编程技术网

Php MYSQL请求是否应该分组

Php MYSQL请求是否应该分组,php,mysql,arrays,Php,Mysql,Arrays,我有一个页面,必须从1db,3个表中获取数据。我使用php/mysql 现在,每当页面需要数据时,它都会调用一个函数来创建新连接,获取特定数据并关闭连接 我应该这样做以增加装载时间吗?它会引人注目吗 当页面加载时,它将调用一个函数来创建一个新连接,从3个表中获取数据,将它们放入一个数组中,然后返回。然后我将使用数组在需要的地方解析数据。以减少连接/关闭的次数 另外,我应该为3个表使用一个数组,将其从函数中返回,然后拆分它。 或者对每个表使用1个数组,并从函数中返回3个数组 现在一切正常,但我关心

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

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

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

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

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

现在一切正常,但我关心的是加载时间


非常感谢。

如果不关闭连接,php将使用以前打开的连接


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

您可能应该指定这些表是什么类型的。它们是与外键相连还是完全无关

一般来说,应该为与数据库的整个通信打开连接,但要尽可能快。因此,工作流应该如下所示:

  • 做一些事情(例如准备数据)
  • 开放连接
  • 使用数据库
  • 密切联系
  • 做一些事情(如过程数据)
  • 假设它是3个没有关系的选择,并且您同时需要它们:

    您应该打开到数据库的连接,并分别为每个数据库返回数组。将它们放在一个文件中,然后解析它们,这似乎是一种开销。最后,您应该关闭连接

    假设表是相关的:

    您应该使用join并在一个select中获取数据

    假设3次选择成本太高,您需要在一次选择中获取所有数据:


    您可以使用union对数据进行聚类,然后将它们拉入一个select中,然后解析结果。然而,这种情况并不经常发生。代码的可读性也更差。

    您可以使用memcached或redis进行加载。 如果保持连接打开,则连接将关闭。您的连接限制将超过bi

    看看这个


    一般来说(和往常一样,也有例外),最好的解决方案是到MySQL服务器的“往返”次数最少的解决方案。文档中是否讨论了这一点?找不到,我是在哪里读到的。我记得,当脚本结束时,连接会自动关闭,所以,如果您对多个脚本使用全局连接,您不需要每次都打开它。