怎麼讓分頁更高效

2021-06-07 19:25:48 字數 776 閱讀 3294

最基本的分頁方式:

select ... from ... 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 = 123 and id >= (

select id from articles order by id limit 10000, 1

) limit 10

----------------------------------------

實際可以利用類似策略模式的方式去處理分頁,比如判斷如果是一百頁以內,就使用最基本的分頁方式,大於一百頁,則使用子查詢的分頁方式。

詳細出處參考:

讓Python更高效的技巧

記得朋友說過這樣的話 在我們指責機器配置不高,程式速度慢的時候,我們應該找找自己的程式 寫的不高效.因為現在的電腦硬體已經很強大,當遇到瓶頸後,多找找自己 的問題,不要總是指責機器的不是 越來越覺得這句話很實在,而這裡造成我們的 執行速度不夠快的原因有多方面,第乙個當然是演算法設計本身,這個相對好處...

這個公式,讓你的學習更高效

如果你讀書是為了 單純的 審美,為了消遣,那沒關係,怎麼讀都可以 但如果你讀書是為了學習,獲取知識,提公升自己,那更好的方式,就是針對知識點,去一一進行 殲滅 為什麼呢?因為,這才是最貼合我們大腦的認知的學習方式。簡而言之,就是 聯絡 舉個例子,不妨看看這句話 蘇美爾南臨波斯灣,由若干塊荒蕪多風的小...

集群部署,SLB讓業務更高效 穩定

在 網際網路 時代,創新層出不窮,許多企業伴隨著業務的良好運營,資料量和訪問量都出現快速增長。然而,在傳統的資訊化建設中,業務系統通常採用單機部署的模式,往往不能跟上業務的發展,系統會出現各種故障,如下 其實,業務系統的高效能 連續性和高可用一直都是企業的生命線,我們很難想象系統由於訪問過高導致突然...