我有一个具有4个内核的单个数据库服务器和一个运行PHP的Web服务器。我希望一个PHP脚本能够向数据库服务器发出查询,以便它们在数据库服务器上并行执行,每个mysqld进程上一个。通常在PHP中,你这样做:PHP可以在Apache环境中发出多重处理的mysql查询吗?
$sql = new mysqli([insert connection parameters]);
$sql->query("SELECT 'Complex Query A'");
$sql->query("SELECT 'Complex Query B'");
$sql->query("SELECT 'Complex Query C'");
$sql->query("SELECT 'Complex Query D'");
但是,这些连续运行,只使用一个mysqld进程。在这个应用程序中,每个查询(A到D)正在处理数据的不同部分,但是处理同一组InnoDB表。
一个可能的解决方案是让AJAX调用Apache将它分解为子脚本威力并行运行,但我猜Apache会处理这些Ajax调用顺序与每个客户端一个httpd进程。
有没有办法做到这一点?有没有人有与mysqlnd MYSQLI_ASYNC功能的经验?它们可以与单个数据库服务器和mysqli连接并行工作吗?
目的:我们运行生成图形的实时分析工具,并且希望利用数据库的处理能力来加快需要时间的查询。
我建议,以及在我的问题,但你确定这在使用单个连接时有效吗?这不需要多个连接到两个或更多不同的服务器? – Toxikman
是的,它需要多个连接 - 每个查询一个连接。我添加了一个链接到'mysqli_poll()'文档,它有一个例子。 – Crack