PostgreSQL 分頁(yè)查詢時(shí)間的2種比較方法小結(jié)
數(shù)據(jù)庫(kù)中存了3000W條數(shù)據(jù),兩種分頁(yè)查詢測(cè)試時(shí)間
第一種
SELECT * FROM test_table WHERE i_id> 1000 limit 100;
Time: 0.016s
第二種
SELECT * FROM test_table limit 100 OFFSET 1000;
Time: 0.003s
第一種
SELECT * FROM test_table WHERE i_id> 10000 limit 100;
Time: 0.004s
第二種
SELECT * FROM test_table limit 100 OFFSET 10000;
Time: 0.508s
第一種:
SELECT * FROM test_table WHERE i_id> 100000 limit 100;
Time: 0.003s
第二種:
SELECT * FROM test_table limit 100 OFFSET 100000; Time: 2.377s SELECT * FROM test_table WHERE c_act='登錄' limit 100 OFFSET 100000; Time: 3.649s
第一種:
SELECT * FROM test_table WHERE i_id> 1000000 limit 100;
Time: 0.004s
第二種:
SELECT * FROM test_table limit 100 OFFSET 1000000;
Time: 14.403s
第一種:
SELECT * FROM test_table WHERE i_id> 10000000 limit 100;
Time: 0.057s
第二種:
失去等待出來(lái)結(jié)果的耐心!??!
建議使用第一種分頁(yè)方法~
補(bǔ)充:postgreSQL數(shù)據(jù)庫(kù)limit分頁(yè)、排序
limit分頁(yè)語(yǔ)法:
select * from persons limit A offset B;
解釋:
A就是你需要顯示多少行;
B就是查詢的起點(diǎn)位置。
示例:
select * from persons limit 5 offset 0 ;
意思是,起點(diǎn)0開(kāi)始查詢,返回5條數(shù)據(jù)。
select * from persons limit 15 offset 5 ;
意思是,起點(diǎn)5開(kāi)始查詢,返回15條數(shù)據(jù)。
特殊:
select * from persons limit 5 ;
這個(gè)就類似:
select * from persons limit 5 offset 0;
也就是,從起點(diǎn)0開(kāi)始查詢,返回5條數(shù)據(jù)。
按規(guī)則排序,同時(shí)也要分頁(yè):
select * from persons order by lastname limit 5 offset 0;
分頁(yè)并顯示行號(hào),類似oracle里的rownum:
select *,row_number() over() as rownum from persons limit 5 offset 0;
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
PostgreSQL實(shí)現(xiàn)交叉表(行列轉(zhuǎn)換)的5種方法示例
這篇文章主要給大家介紹了關(guān)于PostgreSQL實(shí)現(xiàn)交叉表(行列轉(zhuǎn)換)的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Ubuntu中卸載Postgresql出錯(cuò)的解決方法
這篇文章主要給大家介紹了關(guān)于在Ubuntu中卸載Postgresql出錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Postgresql 檢查數(shù)據(jù)庫(kù)主從復(fù)制進(jìn)度的操作
這篇文章主要介紹了Postgresql 檢查數(shù)據(jù)庫(kù)主從復(fù)制進(jìn)度的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
PostgreSQL?pg_filenode.map文件介紹
這篇文章主要介紹了PostgreSQL誤刪pg_filenode.map怎么辦,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-09-09
postgresql數(shù)據(jù)添加兩個(gè)字段聯(lián)合唯一的操作
這篇文章主要介紹了postgresql數(shù)據(jù)添加兩個(gè)字段聯(lián)合唯一的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Postgresql的select優(yōu)化操作(快了200倍)
這篇文章主要介紹了Postgresql的select優(yōu)化操作(快了200倍),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
Abp.NHibernate連接PostgreSQl數(shù)據(jù)庫(kù)的方法
這篇文章主要為大家詳細(xì)介紹了Abp.NHibernate連接PostgreSQl數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
postgresql無(wú)則插入,有則更新問(wèn)題
這篇文章主要介紹了postgresql無(wú)則插入,有則更新問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
PostgreSQL利用遞歸優(yōu)化求稀疏列唯一值的方法
這篇文章主要介紹了PostgreSQL利用遞歸優(yōu)化求稀疏列唯一值的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
PostgreSQL12同步流復(fù)制搭建及主備切換方式
這篇文章主要介紹了PostgreSQL12同步流復(fù)制搭建及主備切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

