例如下面的代碼
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";
}
摘自:http://jian-zhoung.blogspot.com/2007/11/mysql.html
沒有留言:
張貼留言