亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 19:54:33
字體:
來源:轉載
供稿:網友

一、適用范圍
  均速分頁法主要適用于文章系統,新聞系統等排序方法固定的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.49028c.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]
    [article_1]  id int IDENTITY (1, 1) NOT NULL, artid int, classid int default 0, title varchar(100), addtime datetime
    把多出來的零頭數據加入這個表中。


    2、數據的顯示
    定義pagecount是[page_1]的記錄數

    我們分兩種情況來
    (1)如果article_1沒有記錄(沒有零頭數據)
     第一頁是84,83
     第二頁是82,81
     第三頁是80,79
     ……
     第N頁是 : pagecount-(2*N-2), pagecount-(2*N-2)-1 

    (2)如果article_1有記錄(有零頭數據)
     第一頁,調用article_1的數據,84
     第二頁,83,82
     ……
     第N頁是 : pagecount-(2*N-3), pagecount-(2*N-3)-1

     說明一下:其中84,83等等這些數字,就是在page_1中,你對應的str編號XXX

     說到這里可能大家就比較明白了,均速分頁法的原理實際是原來把頁面分好,在分頁的時候直接用頁面進行拼接。這比每次分頁的時候從數據庫里直接調用數據再進行分頁要來得省資源。
     同時,還可以說明一點的是,你完全可以不建立page_1表,而把這些str保存為HTML,然后在分頁的時候讀取出HTML頁面進行拼接。

     3、數據的添加
     在傳統的HTML分頁中,添加新數據后,要把所有的HTML分頁重新生成一次,在均速分頁法中,就無需這樣。我們前面已經設定了每個小頁面只顯示20條記錄,那么article_1表中,也只保存最多19條記錄。我們新添加一條記錄,那么同時把這條記錄加入到article_1中,如果article_1中的數據已經超19,那么就把這里面的數據生成一個str,加上編號后保存在[page_1]里,當然,如果你是用生成HTML的,你可以直接生成一個HTML。如果article_1中的數據已經沒有超19,那么就不用管它了。


四、均速分頁法和傳統分頁的比較
     我用了兩千條數據的一個數據庫進行測試,在XP系統下,P3 1G,256M內存的硬件條件下,用均速分頁法平均速度在50MS,正負不超過10MS,用普通ADO分頁,速度在85MS,正負在20-35MS之間,可見用均速分頁法,在速度和穩定性上都是不錯的。

     當然,對于數據庫小的情況下,這樣的優勢可能并不明顯,或者可能用ADO分頁來的更快,但是如果在兩萬條數據的分頁中,均速分頁法的平均速度是普通ADO分頁法的一半。

     當然,均速分頁法也有自己的不足,比如程序復雜度比傳統分頁來的高,在數據庫少的時候性能不如ADO。


五、最后一點說明:
    本文主要介紹的是均速分頁法的一個原理,我花了一個晚上用程序進行了實踐,是可行的。但我主要是把str生成HTML后讀取,與本文介紹的數據庫保存str有點不同,不過原理是一樣的。

    如果您有條件使用SQL數據庫,那么我建議您還是使用存儲過程來實現分頁的提速。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久| 97国产精品人人爽人人做| 欧美网站在线观看| 成人黄色在线播放| 91国语精品自产拍在线观看性色| 久久99久久99精品中文字幕| 亚洲天堂免费视频| 亚洲欧美日韩精品久久奇米色影视| 国产一区二区三区视频在线观看| 97久久超碰福利国产精品…| 精品亚洲一区二区三区四区五区| 操91在线视频| 亚洲精品一区二区三区不| 亚洲第一二三四五区| 国产视频自拍一区| 永久免费看mv网站入口亚洲| 亚洲精选一区二区| 搡老女人一区二区三区视频tv| 精品性高朝久久久久久久| 日韩国产欧美精品一区二区三区| 欧美精品一区在线播放| 成人精品视频久久久久| 2021国产精品视频| 51视频国产精品一区二区| 国内精品久久久久久影视8| 4438全国亚洲精品在线观看视频| 亚洲激情视频在线观看| 欧美色欧美亚洲高清在线视频| 国产69精品久久久久久| 亚洲精品白浆高清久久久久久| 成人夜晚看av| 国产精品电影久久久久电影网| 欧美成人午夜激情在线| 国产精品免费网站| 久久久久国产一区二区三区| 在线看欧美日韩| 亚洲精品少妇网址| 日韩亚洲综合在线| 欧美大尺度在线观看| 亚洲欧洲一区二区三区久久| 日韩高清电影免费观看完整| 国内偷自视频区视频综合| 日韩中文在线中文网三级| 欧美性视频精品| 91精品久久久久久久久不口人| 日韩av免费一区| 欧美情侣性视频| 亚洲欧美综合v| 欧美在线视频网| 久久久噜久噜久久综合| 亚洲欧美另类人妖| 国产精品精品久久久| 精品国产成人av| 日韩av毛片网| 欧美日韩色婷婷| 欧美日韩国产色视频| 91视频九色网站| 日韩动漫免费观看电视剧高清| 亚洲情综合五月天| 亚洲精品第一国产综合精品| 久久成人人人人精品欧| 日韩美女视频中文字幕| 国产69精品久久久久99| 亚洲成人精品久久| 亚洲欧美中文字幕在线一区| 亚洲在线免费视频| …久久精品99久久香蕉国产| 亚洲欧美精品一区二区| 欧美做受高潮1| 51精品国产黑色丝袜高跟鞋| 国产精品久久久久久久久久小说| 亚洲免费视频观看| 日本19禁啪啪免费观看www| 欧美日韩亚洲网| 欧美一级大胆视频| 欧美成人免费小视频| 精品久久久久久久中文字幕| 国产精品久久久999| 欧美乱大交做爰xxxⅹ性3| 亚洲电影免费观看| 日韩精品中文字幕在线| 亚洲男人天堂网| 亚洲va久久久噜噜噜久久天堂| 国产日韩欧美视频在线| 51色欧美片视频在线观看| 欧美精品在线观看91| 91精品国产91久久久久久不卡| 亚洲精品国产suv| 亚洲精品美女网站| 亚洲天堂精品在线| 国产一区二区三区视频免费| 九九精品视频在线观看| 亚洲人成绝费网站色www| 欧美亚洲另类在线| 5566日本婷婷色中文字幕97| 亚洲视频在线播放| 午夜精品久久17c| 久久久久久久影视| 久久视频免费在线播放| 精品福利在线观看| 国产日韩av在线播放| 亚洲激情久久久| 在线a欧美视频| 精品呦交小u女在线| 国产精品吹潮在线观看| 国模精品系列视频| 日韩欧美国产视频| 久久视频在线视频| 91国产精品91| 欧美激情视频一区| 久久91亚洲人成电影网站| 日韩久久免费电影| 欧美激情精品久久久久久久变态| 日韩美女中文字幕| 国产精品亚洲视频在线观看| 久热在线中文字幕色999舞| 国产99在线|中文| 久久久噜噜噜久久中文字免| 亚洲欧美综合精品久久成人| 久久久久成人精品| 久久中文精品视频| 一道本无吗dⅴd在线播放一区| 亚洲一区二区三区乱码aⅴ| 亚洲欧美国产高清va在线播| 91在线观看免费高清| 18一19gay欧美视频网站| 欧美精品激情在线| 欧美成人网在线| 欧美性少妇18aaaa视频| 日韩精品视频在线| 亚洲最大成人在线| 欧美大成色www永久网站婷| 色偷偷88888欧美精品久久久| 亚洲美女中文字幕| 欧美性资源免费| 欧美电影免费观看网站| 亚洲无亚洲人成网站77777| 久久精品国产精品亚洲| 成人国内精品久久久久一区| 最近更新的2019中文字幕| 亚洲国产古装精品网站| 亚洲国产成人久久综合| 日韩精品在线免费播放| 国产成人鲁鲁免费视频a| 欧美国产日韩精品| 韩剧1988免费观看全集| 国产美女主播一区| 国产精品揄拍一区二区| 欧洲中文字幕国产精品| 欧美在线视频免费播放| 亚洲毛片一区二区| 日韩av免费一区| 日韩精品一区二区视频| 亚洲人成绝费网站色www| 自拍偷拍免费精品| 91精品久久久久久久久中文字幕| 欧美老少做受xxxx高潮| 国产一区二区在线免费| 国产视频精品一区二区三区| 国产日韩在线免费| 亚洲欧美日韩一区在线| 自拍偷拍亚洲精品| 欧美国产视频日韩| 456国产精品|