最基本的分頁方式:
select ... from ...&程式設計客棧nbsp;where ... order by ... limit ...
在中小資料量的情況下,這樣的sql足夠用了,唯一需要注意的問題就是確保使用了索引:
舉例來說,如果實際sql類似下面語句,那麼在category_id, id兩列上建立復合索引比較好:
select * from articles where category_id = 123 order by id limit 50, 10
子查詢的分頁方式:
隨著資料量的增加,頁數會越來越多,檢視後幾頁的sql就可能類似:
select * from articles where category_id = 123 order by id limit 10000, 10
一言以蔽之,就是越往後分頁,limit語句的偏移量就會越大,速度也會明顯變慢。
此時,我們可以通過子查詢的方式來提高分頁效率,大致如下:
select * from articles where category_id = 1程式設計客棧23 and id >= (
select id from&nwww.cppcns.combsp;articles order by id limit 10000, 1
) limit 10
----------------------------------------
實際可以利用類似策略模式的方式去處理分頁,比如判斷如果是一百頁以內,就使用最基本的分頁方式,大於一百頁,則使用子查詢的分頁方式。
本文標題: php mysql與分頁效率
本文位址: /wangluo/php/42534.html
PHP MYSQL分頁原理
select from table limit 開始位置 操作條數 分頁原理 所謂分頁顯示,也就是講資料庫中的結果集,一段一段顯示出來 怎麼分段,當前在第幾段 每頁有幾條,當前再第幾頁 前10條記錄 select from table limit 0,10 第11至20條記錄 select from...
php mysql分頁公式
1 sql語句中的limit用法 select from table limit 開始位置 操作條數 2 學習分頁的一種公式 1 分頁原理 所謂分頁顯示,也就是講資料庫中的結果集,一段一段顯示出來 2 需要的條件 怎麼分段,當前在第幾段 每頁有幾條,當前再第幾頁 前10條記錄 select from...
PHP MySQL資料分頁
sqlselect語句查詢總是可能導致數千條記錄。但是在乙個頁面上顯示所有結果並不是乙個好主意。因此,我們可以根據要求將此結果劃分為多個頁面。分頁意味著在多個頁面中顯示您的查詢結果,而不是僅將它們全部放在乙個長頁面中。mysql通過使用limit子句幫助生成分頁,該子句將採用兩個引數。第乙個引數為o...