Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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_Sql_Pdo - Fatal编程技术网

Php 是否需要mysql查询连接和速度/替代数据库解决方案?

Php 是否需要mysql查询连接和速度/替代数据库解决方案?,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我知道你可以在一个mysql\u query()(或mysqli\u…)中执行10个SQL查询,但这与在每个查询中执行10个mysql\u query()s时执行一个SQL查询有什么不同 如果它们不同,并且第一个解决方案更有效,我将如何对其中一个查询使用mysql\u fetch\u assoc()函数 如果第一个解决方案允许我将每页的连接数限制为每个mysql\u query(),那么我认为我将有足够的mysql连接来处理我的流量,但是如果没有,我可以使用什么样的SQL技术(或其他?)来更有效

我知道你可以在一个
mysql\u query()
(或
mysqli\u
…)中执行10个SQL查询,但这与在每个查询中执行10个
mysql\u query()
s时执行一个SQL查询有什么不同

如果它们不同,并且第一个解决方案更有效,我将如何对其中一个查询使用
mysql\u fetch\u assoc()
函数

如果第一个解决方案允许我将每页的连接数限制为每个
mysql\u query()
,那么我认为我将有足够的mysql连接来处理我的流量,但是如果没有,我可以使用什么样的SQL技术(或其他?)来更有效地从PHP连接到数据库(这样我就可以处理更多的用户)?


我使用的是Apache和PHP5.4,一次只能发送一个查询

mysql_query()向服务器上与指定链接_标识符关联的当前活动数据库发送唯一查询(不支持多个查询)

你可以用。。文档中的示例:

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();

在一次调用mysql_query()中运行10个查询与运行10个mysql_query()之间的区别在于,在第一种情况下,您只能从最后一个查询中获得结果。但只要您不执行新的mysql_connect(),它就不应该在查询之间重新连接

另一种选择是使用它,它将允许您并行运行多个查询,这将对它进行一些优化,但不是全部优化

从它的声音,你不需要一个更有效的方式来连接到你的数据库,你要么需要优化你的查询,排序索引等,或者可能只是数据库机器配置不正确或硬件尺寸不足。我猜你的实际问题是你的数据库问题太慢了


只要使用mysql_query(),每次调用一个查询,mysql与PHP在一台单独的机器上运行,您仍然可以每秒执行数百个mysql查询,而不必费吹灰之力。

您可以通过sql将每个查询分离。。我可以发誓我以前用分号分隔多个查询,但如果不可能,多个查询和多个查询之间有什么区别?@maxhud没有看到来源,我无法确认-但我建议它会一个接一个执行-将结果存储在数组中。。。在
multi_query
上有一些陷阱需要注意-例如,错误后的查询不会执行-因此我建议您对多个查询有更大的控制