PHP - способ загрузки страницы с нулевыми вызовами базы данных

Я работаю над страницей, на которой происходит более 100 обращений к базе данных, и загрузка веб-страницы занимает слишком много времени.

Я думаю о загрузке страницы с нулевыми вызовами базы данных. У меня есть следующие пути в моей голове -

  1. Создайте HTML-копию моей страницы, используя задание cron, которое часто запускается каждые 5 минут, а затем загрузите его с помощью file_get_contents.

  2. Создайте txt-файл значений результата базы данных, а затем загрузите его на страницу.

  3. Использование веб-сокетов - когда появляются новые данные, обновляется страница.

Мне нужно мнение эксперта от вас, ребята:)

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();  ?>

в конце!

Другие вопросы по тегам