TODO:數(shù)據(jù)庫優(yōu)化之分頁
創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、成都微信小程序、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十年以來,已經(jīng)為上千余家成都塑料袋各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上千余家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。本文的例子是以MongoDB數(shù)據(jù)庫為準(zhǔn),其它數(shù)據(jù)庫各位也可以舉一反三進(jìn)行優(yōu)化。
在MongoDB中分頁使用
a.skip(n)跳過前n個(gè)匹配的文檔;
b.limit(m)返回m個(gè)結(jié)果,要是匹配的結(jié)果不到m個(gè),則返回匹配數(shù)據(jù)量的結(jié)果,m是指定上限數(shù)量,而不是下限數(shù)量;
c.sort({“name”: 1,”address”:-1}),1表示升序,-1表示降序。
使用skip跳過少量的文檔還可以。但是數(shù)據(jù)量非常多的話,skip就會(huì)變得非常慢,每個(gè)數(shù)據(jù)庫都會(huì)有這種情況,所以要盡量避免過多的使用skip。那要怎么做分頁,我們可以利用上次的結(jié)果來計(jì)算下次的查詢。
1.使用skip的分頁
Page1 = db.user.find({}).limit(100)
Page2 = db.user.find({}).skip(100).limit(100)
Page3 = db.user.find({}).skip(200).limit(100)
2.利用上次的結(jié)果來計(jì)算下次的查詢,按時(shí)間戳(timestamp)排序
獲取第一頁
Page1 = db.user.find({}).sort({“timestamp”: -1}).limit(10)
獲取當(dāng)前頁面的最后一條記錄的時(shí)間戳lasttimestamp,
根據(jù)lasttimestamp進(jìn)行查詢下一頁數(shù)據(jù)
Nextpage=db.user.find({“timestamp”:{“$gt”:lasttimestamp}}).sort({“timestamp”: -1}).limit(10)
這樣查詢就沒有使用到skip,但是要確保timestamp唯一約束確保文檔中的數(shù)據(jù)沒有相同的值。
wxgzh:ludong86
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:TODO:數(shù)據(jù)庫優(yōu)化之分頁-創(chuàng)新互聯(lián)
鏈接地址:http://www.rwnh.cn/article8/dgspip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、ChatGPT、小程序開發(fā)、企業(yè)建站、移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容