Может ли PHP выдавать многообработанные запросы mysql в среде Apache?

У меня есть один сервер базы данных с 4 ядрами и веб-сервер, на котором запущен PHP. Я хочу, чтобы один сценарий PHP мог отправлять запросы к серверу базы данных таким образом, чтобы они выполнялись параллельно на сервере базы данных, по одному для каждого процесса mysqld. Обычно в PHP вы делаете это:

$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?

Цель: мы запускаем аналитические инструменты в реальном времени, которые генерируют графики, и я хотел бы воспользоваться вычислительной мощностью нашей базы данных для ускорения запросов, которые требуется время.

6
задан Stu 25 August 2011 в 10:10
поделиться