SQL分页查询的介绍以及好处~~
SQL分頁查詢的介紹以及好處~~
分頁查詢
?
就是將過多的結(jié)果在有限的界面上分多頁來顯示,一般將分頁查詢分為兩類:
邏輯分頁、物理分頁。
邏輯分頁是在用戶第一次訪問時(shí),將數(shù)據(jù)庫的所有記錄全部查詢出來,添加到一個(gè)大集合中,然后存放在session對(duì)象,再通過頁碼計(jì)算出當(dāng)前頁需要顯示的數(shù)據(jù)內(nèi)容,存儲(chǔ)到一個(gè)小的list的集合中,并將其存儲(chǔ)到request對(duì)象中,跳轉(zhuǎn)到JSP頁面,進(jìn)行遍歷顯示。 當(dāng)用戶第二次訪問時(shí),只要不關(guān)閉瀏覽器,還會(huì)從session中獲取數(shù)據(jù),來進(jìn)行顯示。因?yàn)榇朔N方法是在內(nèi)存的session對(duì)象中進(jìn)行計(jì)算分頁顯示的,而不是真正的將我們數(shù)據(jù)庫進(jìn)行分頁的,所以叫做邏輯分頁。
缺點(diǎn):如果需要查詢的數(shù)據(jù)量過大,session將耗費(fèi)大量的內(nèi)存;因?yàn)槭窃趕ession中獲取數(shù)據(jù),如果第二次或者更多此的不關(guān)閉瀏覽器訪問,會(huì)直接訪問session,從而不能保證數(shù)據(jù)是最新的。
優(yōu)點(diǎn):統(tǒng)一代碼處理方式,較容易跨數(shù)據(jù)庫做遷移。
物理分頁,使用數(shù)據(jù)庫自身所帶的分頁機(jī)制,例如,Oracle數(shù)據(jù)庫的rownum,或者M(jìn)ysql數(shù)據(jù)庫中的limit等機(jī)制來完成分頁操作。因?yàn)槭菍?duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行分頁條件查詢,所以叫物理分頁。每一次物理分頁都會(huì)去連接數(shù)據(jù)庫。
優(yōu)點(diǎn):數(shù)據(jù)能夠保證最新,由于根據(jù)分頁條件會(huì)查詢出少量的數(shù)據(jù),所以不會(huì)占用太多的內(nèi)存。
?
CTE(Common Table Expression,公用表表達(dá)式)
?
該表達(dá)式源自簡單查詢,可以認(rèn)為是在單個(gè) SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 語句的執(zhí)行范圍內(nèi)定義的臨時(shí)結(jié)果集。CTE 與派生表類似,具體表現(xiàn)在不存儲(chǔ)為對(duì)象,并且只在查詢期間有效。與派生表的不同之處在于,CTE 可自引用,還可在同一查詢中引用多次。
分頁查詢的好處:
參考博文:點(diǎn)擊打開鏈接https://www.2cto.com/database/201511/451632.html
總結(jié)
以上是生活随笔為你收集整理的SQL分页查询的介绍以及好处~~的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最小生成树算法(两个方法实现)
- 下一篇: linux mysql 5.6.23_m