У меня есть один сервер баз данных с 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?
Цель: мы используем аналитические инструменты в реальном времени, которые генерируют графики, и я хотел бы воспользоваться вычислительной мощностью нашей базы данных для ускорения запросов, которые занимают время.