免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用分頁查詢來適應(yīng)挖掘海量數(shù)據(jù)的需求-數(shù)據(jù)庫專家|QQread.com
使用分頁查詢來適應(yīng)挖掘海量數(shù)據(jù)的需求
廣告插畫創(chuàng)意動(dòng)漫Logo包裝繪畫鼠繪3D時(shí)尚卡通網(wǎng)站CG藝術(shù)攝影
來源: 作者:tangl_99 2006-05-16 出處:巧巧讀書
oracle  mysql
數(shù)據(jù)挖掘各類算法中,常常需要遍歷整個(gè)數(shù)據(jù)庫(表)?,F(xiàn)實(shí)中的數(shù)據(jù)庫可能十分大,往往不可能通過一個(gè)簡單的Select *的方式遍歷提取數(shù)據(jù)表內(nèi)的所有元組。 直接用Select * 的方式存在兩大問題,一是Select *過后,可能要等很久數(shù)據(jù)庫才能將所有信息提交完畢,第二是得到的結(jié)果可能是很大,遠(yuǎn)遠(yuǎn)超過內(nèi)存的限制。
現(xiàn)在各種主流的數(shù)據(jù)庫都支持了分頁查詢的方式。
Oracle為例,通過rownum關(guān)鍵字可以獲取指定的行區(qū)間。
比如:  Select * from XX.TABLE1 where rownum <= 100。不過Oracle的rownum有點(diǎn)特別的就是,rownum必須從1開始,如果直接這樣寫就不行了: Select * from XX.TABLE1 where rownum between 50 and 100。
而實(shí)際上,我們可以這樣來寫:SELECT * from (select n.*,rownum num from XX.TABLE1 n WHERE rownum <=100) where num >= 50;
MySQL為例,提供了limit關(guān)鍵字,更加方便獲取中間某區(qū)間的行數(shù)據(jù)。
比如: Select * from TABLE1 limit 50,100。 MySQL的limit關(guān)鍵字用起來比Oracle要方便一些。不過各個(gè)數(shù)據(jù)庫的分頁查詢的速度我倒沒有研究過,網(wǎng)上聽一些高手們說,Oracle提供的分頁查詢效率要高一些。
Hibernate這樣的數(shù)據(jù)持久層提供的分頁查詢,可以屏蔽掉各個(gè)不同的數(shù)據(jù)庫之間具體SQL實(shí)現(xiàn)差異。
Hiberante這樣的數(shù)據(jù)持久層工具一大好處就是可以屏蔽掉不同數(shù)據(jù)庫的之間的某些細(xì)節(jié)差異。分頁查詢在不同的數(shù)據(jù)庫上實(shí)現(xiàn)的SQL不一樣,所以要統(tǒng)一,最好使用Hibernate這樣的工具。
Query q = session.createQuery("from Cat as c");
q.setFirstResult(50);
q.setMaxResults(100);
List l = q.list();
網(wǎng)上到處都可以搜尋到關(guān)于Hibernate內(nèi)部實(shí)現(xiàn)分頁查詢的解讀的文章。可以看到,Hibernate內(nèi)部也是通過rownum,limit這些關(guān)鍵字來實(shí)現(xiàn)分頁的。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Hibernate 高級查詢技巧
Oracle千萬條記錄插入與查詢小結(jié)
Oracle中 rownum與rowid的理解
JAVA技巧:Java中的大量數(shù)據(jù)查詢
oracle之偽列(ruwnum、ruwid)
oracle分頁查詢方法
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服