国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

在ASP中使用均速分頁法提高分頁速度

2024-05-04 10:58:41
字體:
來源:轉載
供稿:網友
一、適用范圍
  均速分頁法主要適用于文章系統,新聞系統等排序方法固定的ASP+ACCESS應用

二、特點說明
很多用過一些文章系統或是新聞系統的朋友知道,一般的文章系統或是新聞系統,在分類分頁時,通常是通過讀取數據庫中滿足條件的排序后數據,然后根據請求頁號,通過定位操作,指向某條數據,并且開始讀取這條數據后面的若干條數據作為一頁。這種分頁方法,原理簡單,但是存在的問題是每次都需要把數據庫中滿足條件的排序后數據都讀取出來,如果有兩千條數據,這個還好,如果有兩萬條呢?顯示,這會占用大量的內存,浪費很多服務器資源。當然,如果有條件的,可以用SQL數據庫,這樣就好辦多了,用一點存儲過程就全部解決了。不過可能很多朋友還是在用ACCESS數據庫,這樣就沒有辦法了。當然,還有一些程序是把分頁生成HTML,就像不少下載站點一樣,大家有沒有想過,這樣會出現什么問題?如果我在后臺一次添加一條記錄,那么我得把這個分類中所有的分頁都重新生成一次HTML,這是肯定的,想想吧,這樣效率是不是很差。
均速分頁法就是為了解決在ACCESS數據庫中,大量數據的分頁而想出來的。它兼有HTML分頁和傳統ADO分頁的優點。一是速度快,占用資源少,不管你是第一頁還是第一百頁,程序速度都是相同的。而且在數據添加時,不必把所有分頁都重新生成。下面我把原理介紹一下

三、分頁原理
數據庫中有一個article表,一個class表,我們不考慮是不是無限級分類還是兩級分類,這個與我們無關。
[article] id int IDENTITY (1, 1) NOT NULL, classid int default 0, title varchar(100), addtime datetime
[class] id int IDENTITY (1, 1) NOT NULL, classname varchar(20)

1、生成分頁
如果class表中有一行數據是id為1,classname為“ASP分類”,我們先把所有article中所有classid=1的數據都取出來,(www.knowsky.com)然后按addtime升序排列,這個與普通的ADO分面是一樣的,但是,下面我們要進行一些處理。
我們動態的在數據庫里生成一個表,名字叫[page_1],1就是對應的classname為“ASP分類”的ID自動編號。
[page_1] pagenum int, pagestr text

我們先每20條數據生成一個str,每個str實際就是顯示時這20條數據庫的列表,然后為這個str編個號XXX,如果是0-19條記錄,那么XXX就是001,如果是20-39,XXX就是002,以此類推。把str和它的編號加入page_1中。我們這里假設最大的是84

大家肯定會想到,數據不可能總是整除19(20個數據應該是mod 19)呀,當然,我們要處理一下零頭,這些零頭應該是最新的數據(我們是按addtime)排列的。我們再動態的建立一個表,[aritcle_1]
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗田县| 墨江| 方城县| 孟村| 莎车县| 信丰县| 衡阳市| 克拉玛依市| 麻江县| 隆昌县| 宽甸| 凤凰县| 平南县| 蓬安县| 凉城县| 思南县| 黄冈市| 唐山市| 化州市| 房山区| 霍山县| 如东县| 玉林市| 孝感市| 洱源县| 格尔木市| 罗平县| 军事| 禄劝| 腾冲县| 铁力市| 彰化县| 靖西县| 宜兰市| 福鼎市| 琼结县| 东方市| 湛江市| 九江市| 鹤峰县| 达州市|