您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關PostgreSQL怎么減少分頁查詢的時間,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
第一種
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
第二種:
失去等待出來結果的耐心!!!
建議使用第一種分頁方法~
補充:postgreSQL數據庫limit分頁、排序
limit分頁語法:
select * from persons limit A offset B;
解釋:
A就是你需要顯示多少行;
B就是查詢的起點位置。
示例:
select * from persons limit 5 offset 0 ;
意思是,起點0開始查詢,返回5條數據。
select * from persons limit 15 offset 5 ;
意思是,起點5開始查詢,返回15條數據。
特殊:
select * from persons limit 5 ;
這個就類似:
select * from persons limit 5 offset 0;
也就是,從起點0開始查詢,返回5條數據。
按規則排序,同時也要分頁:
select * from persons order by lastname limit 5 offset 0;
分頁并顯示行號,類似oracle里的rownum:
select *,row_number() over() as rownum from persons limit 5 offset 0;
以上就是PostgreSQL怎么減少分頁查詢的時間,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。