Я создаю php-сайт для компании, которая отображает информацию о базе данных на MYSQL, но иногда для загрузки этой информации требуется около 20 секунд, и это просто происходит случайным образом. При правильной работе это занимает около 0,005 секунд.
База данных находится на локальном виртуальном сервере во внутренней сети компании, но я получаю к ней доступ через dyndns.info:port.
В случае замедления, если вы многократно перезагружаетесь, веб-сайт работает медленно, а внезапно, когда он быстро загружается, сохраняет быструю перезагрузку и т. Д.
try {
$conection= new PDO("mysql:host=domain.dyndns.info; port=0000; dbname= db", user, pass);
return $conection;
} catch (PDOException $e) {
}
Код медленен в операторе execute:
$statement = $conexion->prepare("SELECT table1.col1, table2.col2, table2.col3, table2.col4, table2.col5 FROM table1 LEFT JOIN table2 ON table1.col6 = table2.col6 LEFT JOIN table 3 ON table1.col1 = table3.col1 LIMIT 10 ");
$start_timer = microtime(true);
$statement->execute();
$piezas = $statement->fetchAll();
$end_timer = microtime(true);
В запросе есть три левых объединения, в table1 - 50000 строк, в table2 - 20 000, а в table3 - 80 000, поэтому я думаю, что это может быть возможной проблемой, но это не объясняет, почему иногда веб-сайт загружается быстро.
Другой возможной проблемой может быть виртуальный сервер, но я не уверен, объясняет ли это случайную медлительность запроса.
Есть идеи, что может быть реальной проблемой? или какие-либо инструменты тестирования, которые могут мне помочь?