PHP分頁效率加強版
這裏僅展示出設計思路,具體安全問題,是否同步更新等可根據具體需求添加修改:
以前人們常用的PHP分頁技術,通常都需要先統計出數據庫中總信息條數才能判斷出總頁數並對其進行分頁,,也就是説,每次分頁要對數據庫進行兩次調用,在面臨大數據量,高併發查詢情況下是很不效率的,曾經一直為這個問題煩惱但都沒想到合適的`解決方法,今天突然在睡夢中 遇見奇蹟...具體分析原理如下:(紅色部分為優化後的區別,思路採用最原始的代碼書寫,為了照顧新人)
原始分頁技術:包括許多開源程序也在使用的技術;
一般都是對數據庫信息進行統計,然後調用分頁類,進行分頁,,每次都要經過2次數據庫查詢操作
例(原始分頁技術): 每次都要進行2次數據庫查詢
複製代碼 代碼如下:
$sqlstr="select count(*) as total from tablename";
$sql=mysql_query($sql) or die("error");
$info=mysql_fetch_array($sql); //第一次 數據庫調用
$total=$info["total"];//每次翻頁都要進行 總信息條數 的數據庫查詢操作
$pagesize=10; //每頁顯示數量
$page=$_GET["page"]?max(intval($_GET["page"]),1):1;//當前頁
if($total){,
$sql="select * from tablename limit "($page-1)*$pagesize",$pagesize";
$sql=mysql_query($sql) or die("error");//第二次數據庫查詢操作
$info=mysql_fetch_array($sql);
do{
...............
}while($info=mysql_fetch_array($sql));
include("page_");//調用分頁類
$url=" //假設當前頁為
echo $get_page=new get_page($url,$total,$pagesize,$page); //URL 為要分頁的URL地址
}
//優化後的分頁技術(只需在第一次調用時進行信息統計即可)
if(isset($_GET["total"])){ //只需要進行一次總信息條數的統計即可
$total=intval($_GET["total"]);
//以後的的總信息數量通過GET傳遞即可,節省了1/2的數據庫負荷,,,,
}else{
$sqlstr="select count(*) as total from tablename";
$sql=mysql_query($sql) or die("error");
$info=mysql_fetch_array($sql); //第一次 數據庫調用
$total=$info["total"];
}//總信息條數
$pagesize=10; //每頁顯示數量
$page=$_GET["page"]?max(intval($_GET["page"]),1):1;//當前頁
if($total){
$sql="select * from tablename limit "($page-1)*$pagesize",$pagesize";
$sql=mysql_query($sql) or die("error");//第二次數據庫查詢操作
$info=mysql_fetch_array($sql);
do{
...............
}while($info=mysql_fetch_array($sql));
include("page_");//調用分頁類
$url="$total&page=" //假設當前頁為
echo $get_page=new get_page($url,$total,$pagesize,$page); //URL 為要分頁的URL地址
}
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
JavaScript數組去重的四種方法
javascript數組去重方法彙總ue1=function(){varn=[];//一個新的臨時數組for(vari=0;i<th;i++)//遍歷當前數組{//如果當前數組的第i已經保存進了臨時數組,那麼跳過,//否則把當前項push到臨時數組裏面if(xOf(this[i])==-1)(this[i]);}returnn;};ue2=function(){var...
-
python批量生成本地ip地址的方法是什麼
python批量生成本地ip地址的方法是什麼呢?本文實例講述了python批量生成本地ip地址的方法。分享給大家供大家參考。具體分析如下:...
-
JavaScript經典效果集錦
些很實用且必用的小腳本代碼:腳本1:進入主頁以後自動播放聲音腳本2:進入主頁後自動最大話,省的去在自己單擊了To(0,0)zeTo(lWidth,lHeight)腳本3:顯示現在時間的腳本enow腳本4:顯示最後修改時間的.腳本e(Modified)腳本5:設為首頁,加為收藏,加入頻道,啟動outlook...