乙個列表頁面,之前程式設計師用了「wuqi.webdiyer」的分頁外掛程式,慢,且莫明出錯。看了下**,覺得冗餘太多,故決定優化一下。
從網上找了些資料,考慮直接在sql底層,直接只取當前頁的資料,再繫結,這樣效率應該會高些。
核心的sql查詢語句是這樣的:
selecttop@size
*from (@sqlstring
) a
where
@key
<
= (select
min(@key) from (select
top@star
@key
from (@sqlstring) a order
by@key
desc
) a)
and@key
>= (select
min(@key) from (select
top@end
@key
from (@sqlstring) a order
by@key
desc
) a)
order
by@key
desc
其中:
@size:一頁的數量;若排序不同,則**應做相應變化:@sqlstring:原始查詢語句;
@key:關鍵字段/排序字段,它應是唯一字段;
@star:開始記錄數索引,star = size*(p-1)+1;
@end:結束記錄數索引,end = size*p+1;
selecttop@size
*from (@sqlstring
) awhere
@key
>
= (select
max(@key) from (select
top@star
@key
from (@sqlstring) a order
by@key
asc) a)
and@key
<= (select
max(@key) from (select
top@end
@key
from (@sqlstring) a order
by@key
asc) a)
order
by@key
asc
我就是這樣構建取資料集的方法,然後把相關引數傳進來,拼接查詢,返回資料集繫結即可。
這個方案暫時未發現出錯,效率也有所提公升。
SQL分頁資料查詢
在許多資料庫應用系統中,會對資料進行大量的查詢操作。當查詢資料量比較大時查詢所用的時間就會變得較慢,所以我們希望可以分批的獲取資料。特寫了乙個儲存過程用於分批獲取資料。鑑於游標效率低,故此處沒有採用。create procedure selectpage tablename nvarchar 64 ...
爬取動態分頁資料案例
爬取東方財富 的財經新聞資料 1.爬取頁面中的標題和對應的內容 標題 內容 2.進行分頁操作,爬取當前頁面所有頁碼對應的標題和內容資料 3.不可以使用selenium 4.進行任意形式的持久化儲存 通過對 的分析發現翻頁時,有ajax資料報分析資料報的url發現,翻頁改變url中的引數,共20頁 u...
Redis儲存分頁資料
普通分頁 一般分頁做快取都是直接查詢出來,按頁放到快取裡,但是這種快取方式有很多缺點。如快取不能及時更新,一旦資料有變化,所有的之前的分頁快取都失效了。比如像微博這樣的場景,微博下面現在有乙個頂次數的排序。這個用傳統的分頁方式很難應對。一種思路 最近想到了另一種思路。資料以id為key快取到redi...