Laravel to MySQL Ведение журнала синхронизации - PullRequest
0 голосов
/ 25 мая 2019

Я застрял, пытаясь устранить проблемы задержки и синхронизации с моим сайтом Laravel, и мне было любопытно, если бы был способ проверить синхронизацию соединений между хостом сайта Laravel и хостом его базы данных MySQL.

Я пытаюсь исключить возможность возникновения задержки, и я хочу убедиться, что эти два вопроса находятся на разных хостах (хотя и в одной локальной сети).

Ответы [ 2 ]

0 голосов
/ 25 мая 2019
0 голосов
/ 25 мая 2019

Поскольку Laravel реализован на PHP, вы можете сделать что-то вроде этого.

$TimeQuerySent = microtime(true) ;
// Send Request
$TimeQueryReturned = microtime(true) ;
$TimeConsumed = $TimeQueryReturned - $TimeQuerySent ;

Вышеизложенное использует тот факт, что вызов microtime приводит к тому, что он возвращает число с плавающей запятой. Поскольку время прогрессирует вперед, $ TimeQueryReturned всегда больше, чем $ TimeQuerySent, и точность микросекунды должна быть адекватной, если в соединении больше мимолетной задержки.

Конечно, вышеизложенное измеряет только общее время, затраченное запросом, которое включает время, потраченное сервером на выполнение запроса.

Получить информацию со стороны сервера можно, добавив в запрос что-то вроде следующего.

declare StartTime FLOAT;    
set StartTime=UNIX_TIMESTAMP(UTC_TIMESTAMP(6));
select starttime,....

Когда первый оператор является самым первым оператором в вашей хранимой подпрограмме или динамически сгенерированном операторе SQL, StartTime возвращает время начала выполнения запроса на сервере, что примерно так близко, как вы можете получить точно, когда движок MySQL начал работать над ним. Запрос UTC_TIMESTAMP (6) приводит к тому, что временная метка возвращается к ближайшей микросекунде, и неявно преобразует ее в плавающее, а обтекание функции UNIX_TIMESTAMP вокруг нее преобразует возвращенную временную метку в метку времени Unix. , Поскольку все три значения являются временными метками Unix с плавающей точкой, вы можете сравнить все три раза, чтобы определить, является ли задержка сетевой задержкой или задержкой выполнения запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...