我正在处理一个超过100个数据库调用的页面,加载网页需要花费太多时间。
我正在考虑加载一个没有数据库调用的页面。我有以下方式 -
使用cron作业创建我的页面的HTML副本,该作业每5分钟经常运行一次,然后使用file_get_contents加载它。
创建数据库结果值的txt文件,然后将其加载到页面中。
使用websockets - 当有新数据时,它会更新页面。
我需要你们的专家意见:)
答案 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)
您是否规范了这些数据库中的表格?
我有类似的问题。糟糕的桌子设计会让你感到困扰