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