PHP - способ загрузки страницы с нулевыми вызовами базы данных
Я работаю над страницей, на которой происходит более 100 обращений к базе данных, и загрузка веб-страницы занимает слишком много времени.
Я думаю о загрузке страницы с нулевыми вызовами базы данных. У меня есть следующие пути в моей голове -
Создайте HTML-копию моей страницы, используя задание cron, которое часто запускается каждые 5 минут, а затем загрузите его с помощью file_get_contents.
Создайте txt-файл значений результата базы данных, а затем загрузите его на страницу.
Использование веб-сокетов - когда появляются новые данные, обновляется страница.
Мне нужно мнение эксперта от вас, ребята:)
2 ответа
Вы нормализовали таблицы в этих базах данных?
У меня была похожая проблема. Плохое оформление столов может испортить вам
Если вы использовали какой-то фреймворк, такой как CodeIgniter, вы можете управлять уровнем страниц, а также кэшированием на уровне запросов к базе данных. Кэширование запросов идет с истечением срока, поэтому не нужно беспокоиться об обновлении данных.
Для простого php я обычно записывал весь вывод в некоторый файл, а затем проверял datetime, чтобы обслуживать или обновлять его.
В начале php-файла
<?php
$cachefile = "some-unique-name.html";
$cachetime = 864000;
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
readfile($cachefile);
exit;
}
// if no file or too old, render and capture HTML page.
ob_start();
session_start();
?>
------ output all your html code here ----
<?php $fp = fopen($cachefile, 'w+');
fwrite($fp, ob_get_contents());
fclose($fp);
// Send browser output
ob_end_flush();
ob_flush(); ?>
в конце!