PHP - 加载零数据库调用页面的方法

时间:2014-11-05 06:17:05

标签: php mysql websocket load

我正在处理一个超过100个数据库调用的页面,加载网页需要花费太多时间。

我正在考虑加载一个没有数据库调用的页面。我有以下方式 -

  1. 使用cron作业创建我的页面的HTML副本,该作业每5分钟经常运行一次,然后使用file_get_contents加载它。

  2. 创建数据库结果值的txt文件,然后将其加载到页面中。

  3. 使用websockets - 当有新数据时,它会更新页面。

  4. 我需要你们的专家意见:)

2 个答案:

答案 0 :(得分:0)

如果您使用的是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();  ?>
最后!

答案 1 :(得分:0)

您是否规范了这些数据库中的表格?

我有类似的问题。糟糕的桌子设计会让你感到困扰