MySQL中一般的分頁作法大多利用Limit限制回傳的資料筆數來達成分頁效果
例如下面的代碼
Select * From news limit 0, 100 第一頁
Select * From news limit 100,100 第二頁
Select * From news limit 200,100 第三頁
今天突然來了一個思路
和前作 上下頁查詢優化
的思路略同
定位到id值後再用id值作條件
優化的作法
第一頁
Select * From news Where id >=(
Select id From news Order By id limit 0,1
) limit 100
第二頁
Select * From news Where id >=(
Select id From news Order By id limit 100,1
) limit 100
第三頁
Select * From news Where id >=(
Select id From news Order By id limit 200,1
) limit 100
經測試,一萬條數據以內一般的分頁作法比較快
超過一萬條後優化過的作法優勢就呈現出來
當數據量愈多,優化的分頁查詢速度愈快
所以在第一次查詢總資料筆數後可以增加一個判決
檢查資料量是否超過一萬筆
Select count(*) AS `count` From news //製作分頁的前置作業
if($rows['count'] <10000)
{
$sql = "Select * From news limit 0, 100 ";
}
else
{
$sql = "Select * From news Where id >=( Select id From news Order By id limit 0,1) limit 100";
}
阅读(854) | 评论(0) | 转发(0) |