php MySQL與分頁效率

2022-10-06 14:48:16 字數 857 閱讀 1276

最基本的分頁方式:

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...