Драйвер Mysqlnd PHP 5.6 имеет возможность использовать асинхронные запросы http://php.net/manual/en/mysqli.reap-async-query.php
Как использовать асинхронные запросы с PDO?
это не работа, код (PHP асинхронный MySQL-запрос):
$dbConnectionOne = new \PDO($cnn0, $conf['user'], $conf['pass']);
$dbConnectionOne->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$dbConnectionTwo = new \PDO($cnn0, $conf['user'], $conf['pass']);
$dbConnectionTwo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$dbConnectionTwo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);$t = time();
$synchStmt = $dbConnectionOne->prepare('SELECT sleep(2)');
$synchStmt->execute();
$asynchStmt = $dbConnectionTwo->prepare('SELECT sleep(1)');
$asynchStmt->execute();
$measurementConfiguration = array();
foreach ($synchStmt->fetchAll() as $synchStmtRow) {
print_r($synchStmtRow);
}
while (($asynchStmtRow = $asynchStmt->fetch()) !== false) {
print_r($asynchStmtRow);
}$t = time() - $t;
echo 'query execute ', $t, ' sec',PHP_EOL;
исключено 2 секунды, но результат = 3 секунды
Нет. Вы не можете использовать асинхронные запросы Mysql с PDO. Mysqli является единственным выбором.
Вы можете использовать для этого либо mysqli_multi_query
или регулярный query/poll/reap
последовательность.
Других решений пока нет …