硬件環境:PIII550,128M,15.2G
軟件環境:Win98+Apache+Php4+MySql
方案一:
1.第一次查詢時用Select count(1) from tab where condition 取得滿足條件的記錄數$rows
2.通過前頁數$page,每頁記錄數$rpp取回記錄集
select * from tab where condition limit ($page-1)*$rpp,$rpp
3.顯示返回記錄集的所有記錄。
4.頁面轉移時將$rows傳遞給以後頁面。
方案二:
1.取回滿足條件的記錄集
select * from tab where condition
2.移動指針到($page-1)*$rpp
3.顯示$rpp條記錄
============+====+===============================+======+=====+==
記錄數 |方案| 次數 1 2 3 4 5 6 7 8 9 0| 平均 | 平均 | 效率比
============+====+===============================+======+====+===
| |第一頁 2,1,1,2,1,1,2,2,1,2|1.3 | |
| 一 +-------------------------------+------+ 1.6 |
10000條記錄時 | |其它頁 2,2,2,3,1,1,2,2,2,2|1.9 | | 4.8125
+----+-------------------- ------------+------+------+
| 二 |每一頁 7,7,7,8,8,8,8,8,8,8 |7.7 | 7.7 |
===========+====+============================= =====+=====+======+
| |第一頁 25,2,3,2,21,16,9,20,9,9|1.6 | |
| 一 +-----------------------------------+-----+ 7.5 |
20000條記錄時 | |其它頁 6,6,2,2,4,4,4,1,2,2 |3.3 | | 6.6533
+- --+----------------------------------+------+------+
| 二|每一頁 54,50,37,46,49,47,52,50,55,59|49.9 | 49.9 |
============+====+==================================+======+======+====
| |第一頁 34,35,24,21,21,21,22,22,21,21| 25.2 |
| 一 +----------------------------------+------+25.95|
30000條記錄時 | |其它頁 14,27,40,39,37,33,22,30,14,11| 26.7 | | 3.3372
+----+----------------------------------+------+------+
| 二 |每一頁 92,90,83,78,93,83,91,79,89,88 | 86.6 | 86.6 |
============+====+==================================+======+======+===