• Главная
  • » PHP
  • » MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

#1 2014.05.24 02:23

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

В общем решил замутить у себя асинхронные запросы к базе MySQL Ожидал значительное ускорение но ожидания не оправдались.
Значит проверил стандартный запрос SELECT * FROM `video` у меня занимает 0.4 сек. Я так подумал что десять таких запросов в асинхронном режиме не будут отдалятся от этой цифры. +/- потратится время на обработку десяти запросов.
Значит соорудил я такой скрипт для теста

Код:

1
span style="color: #0000BB"><?phpconst NUBMER_TEST = 1;$mysqli = array();$flag = NUBMER_TEST ? MYSQLI_ASYNC : null;$mt = microtime(true);for ($i = 0; $i < 10; $i++) { $mysqli[$i] = new mysqli('p:localhost', 'www', '', 'content'); $mysqli[$i]->query('SELECT * FROM `video`', $flag);}echo (($mt2 = microtime(true)) - $mt) . PHP_EOL;if ($flag === null) exit;do { $links = $errors = $reject = array(); foreach ($mysqli as $link) { $links[] = $errors[] = $reject[] = $link; } if (!mysqli::poll($links, $errors, $reject, 1)) { continue; } foreach ($links as $link) { if ($result = $link->reap_async_query()) { //var_dump($result); if (is_object($result)) $result->free(); } else die(sprintf("MySQLi Error: %s", $link->error)); $processed++; }} while ($processed < count($mysqli));echo (($mt3 = microtime(true)) - $mt2) . PHP_EOL;

В общем я обезнадежился( При выполнении SELECT 1 AS val, SLEEP(1) as sleep разумеется прирост есть. Но я так понимаю в выборе всех видео время уходит на саму выборку т.е. здесь cpu не простаивает?

Неактивен

#2 2014.05.24 16:02

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

Я так понимаю выиграть можно если буду подключатся к разным серверам?

Неактивен

#3 2014.05.25 10:39

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

TLENS, сложно сказать...) если сам запрос выполняется 0.4 сек, то что по поводу оптимизации самого запроса? Кэширвоания результатов?

Неактивен

#4 2014.05.25 17:25

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

Gemorroj написал:

TLENS, сложно сказать...) если сам запрос выполняется 0.4 сек, то что по поводу оптимизации самого запроса? Кэширвоания результатов?

Это тестовый запрос. для выборки всей базы.

Неактивен

  • Главная
  • » PHP
  • » MYSQLI_ASYNC Асинхронные запросы к базе данных MySQL

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.010 s