程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP Adodb的分頁查詢和Smarty緩存性能測試

PHP Adodb的分頁查詢和Smarty緩存性能測試

編輯:PHP綜合

測試環境:

WindowsXP IIS6 / PHP 5.21 / MySQL 5.1

數據庫有283222條數據.

測試情況:

select  id 不使用緩存的情況下,用Adodb的分頁查詢(PageExecute),每頁需要 5-6秒

select  *  不使用緩存的情況下,用Adodb的分頁查詢(PageExecute),每頁需要 20秒以上.

使用Adodb的緩存分頁查詢(CachePageExecute),打開速度未見明顯提升,因此放棄使用CachePageExecute .

使用Smarty緩存,查詢結果生成靜態文件保存.訪問速度如同靜態頁,但不是靜態頁,是要經過PHP處理的.(決定使用此方法)

方法代碼:

<?PHP

include_once('./islogin.PHP');

require  './libs/smarty/Smarty.class.PHP';

include_once('./config/app.PHP');

$per = 20;   //每頁顯示數量

$page = isset($_GET['page'])? $_GET['page'] : 1 ;

if(ereg('^[0-9]+$',$page) !=1)

                   $page = 1;

$sm = new Smarty;

$sm -> template_dir = "./templates/$web_lang";

$sm -> compile_dir  = "./templates_c/$web_lang";

$sm ->caching = true; //開啟緩存

//判斷緩存是否存在

if(!$sm->is_cached('master_websites.htm',$_SESSION['author_id'],$page)) {

$uid = $_SESSION['author_id'];

$sql = "select name,id,email from users";

$websites = $webconn-> PageExecute($sql, $per, $page); //分頁查詢

$page_str = '';

if (!$websites->EOF ) //&& (!$websites->AtFirstPage() || !$websites->AtLastPage())) {

         if(!$websites->AtFirstPage())

         {

                   $page_str .= "<a href='websites.php'>首頁</a> <a href='websites.PHP?page=".($websites->AbsolutePage() - 1)."'>前頁</a>";

         }

         if(!$websites->AtLastPage())

         {

                   $page_str .= " <a href='websites.php?page=".($websites->AbsolutePage() +1)."'>後頁</a> <a href='websites.PHP?page=".($websites->LastPageNo())."'>尾頁</a>";

         }

         $page_str .=' '. $w['current_page'] .$websites->AbsolutePage() .' '. $w['total_page'] .$websites->LastPageNo();

$ws = $websites->GetRows();

$show = (sizeof($ws)>0);

$sm -> assign('page_title',$page_title);

$sm -> assign('ws',$ws);

$sm -> assign('show',$show);

$sm -> assign('page_str',$page_str);

$sm -> display('master_websites.htm',$_SESSION['author_id'],$page); //區分不同用戶,不同頁面生成的緩存文件

include_once('config/end.PHP');

//$sm->clear_cache(null,$_SESSION['author_id']); //清空該用戶的所有緩存,在設計到修改,添加,刪除操作的時候,都要記得清空.

?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved