0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

mybatis邏輯分頁(yè)和物理分頁(yè)的區(qū)別

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-03 14:54 ? 次閱讀

MyBatis是一個(gè)開源的Java持久層框架,它與其他ORM(對(duì)象關(guān)系映射)框架相比,具有更加靈活和高性能的特點(diǎn)。MyBatis提供了兩種分頁(yè)方式,即邏輯分頁(yè)和物理分頁(yè)。在本文中,我們將詳細(xì)介紹這兩種分頁(yè)方式的區(qū)別。

邏輯分頁(yè)是在數(shù)據(jù)庫(kù)中執(zhí)行查詢時(shí)使用的一種分頁(yè)方式。這種方式是通過在查詢語句中添加LIMIT或OFFSET關(guān)鍵字來限制結(jié)果集的大小和偏移量來實(shí)現(xiàn)的。常見的邏輯分頁(yè)方式有MySQL中的LIMIT關(guān)鍵字,以及Oracle中的ROWNUM進(jìn)行分頁(yè)。

邏輯分頁(yè)的主要優(yōu)點(diǎn)是簡(jiǎn)單和高效。因?yàn)樗窃诓樵冋Z句中進(jìn)行分頁(yè)操作,所以不需要查詢整個(gè)結(jié)果集,并且可以直接返回指定的結(jié)果頁(yè),減少了數(shù)據(jù)的傳輸和處理開銷。此外,邏輯分頁(yè)只需處理一部分結(jié)果,可以更快地響應(yīng)客戶端的請(qǐng)求。

然而,邏輯分頁(yè)也存在一些缺點(diǎn)。首先,它只是從數(shù)據(jù)庫(kù)中獲取指定數(shù)量的結(jié)果,并不知道總共有多少條記錄滿足查詢條件。這就導(dǎo)致了在分頁(yè)的情況下,無法直接獲得總記錄數(shù),無法顯示正確的分頁(yè)導(dǎo)航欄和計(jì)算頁(yè)數(shù)。其次,邏輯分頁(yè)的性能在處理大量數(shù)據(jù)時(shí)可能會(huì)出現(xiàn)問題。當(dāng)查詢條件導(dǎo)致結(jié)果集很大時(shí),可能需要較長(zhǎng)的時(shí)間來獲取數(shù)據(jù)。最后,在使用邏輯分頁(yè)的同時(shí),數(shù)據(jù)庫(kù)仍然需要返回整個(gè)結(jié)果集,只是在Java代碼中進(jìn)行了分頁(yè)處理。這可能會(huì)導(dǎo)致內(nèi)存消耗過大,特別是在處理大量數(shù)據(jù)時(shí)。

相比之下,物理分頁(yè)是在數(shù)據(jù)庫(kù)層面進(jìn)行分頁(yè)操作。它使用數(shù)據(jù)庫(kù)自身的分頁(yè)功能來查詢結(jié)果集。常用的物理分頁(yè)方式有MySQL中的LIMIT關(guān)鍵字和Oracle中的ROWNUM進(jìn)行分頁(yè)。使用物理分頁(yè)可以直接從數(shù)據(jù)庫(kù)中獲取指定頁(yè)數(shù)的結(jié)果,無需獲取整個(gè)結(jié)果集。這樣可以減少網(wǎng)絡(luò)傳輸和Java代碼的處理時(shí)間,提供更好的性能。

物理分頁(yè)的優(yōu)點(diǎn)是可以直接知道總記錄數(shù),方便進(jìn)行分頁(yè)導(dǎo)航欄和頁(yè)數(shù)計(jì)算。此外,物理分頁(yè)的性能在處理大量數(shù)據(jù)時(shí)比邏輯分頁(yè)更好,因?yàn)樗梢员苊鈱⒄麄€(gè)結(jié)果集返回到Java代碼中。

然而,物理分頁(yè)也存在一些局限性。首先,物理分頁(yè)的語法依賴于數(shù)據(jù)庫(kù)的特定支持。不同的數(shù)據(jù)庫(kù)可能有不同的語法和限制。其次,物理分頁(yè)對(duì)數(shù)據(jù)庫(kù)的性能影響較大,特別是在處理大量數(shù)據(jù)時(shí)。在某些情況下,性能可能會(huì)比邏輯分頁(yè)差。最后,物理分頁(yè)不能提前知道結(jié)果集的總數(shù),這可能導(dǎo)致分頁(yè)導(dǎo)航欄的計(jì)算和頁(yè)數(shù)展示有一定的困難。

綜上所述,邏輯分頁(yè)和物理分頁(yè)都有各自的優(yōu)點(diǎn)和局限性。邏輯分頁(yè)適用于數(shù)據(jù)量較小的情況下,可以提供簡(jiǎn)單和高效的分頁(yè)功能。物理分頁(yè)適用于數(shù)據(jù)量較大的情況下,可以提供更好的性能和更準(zhǔn)確的分頁(yè)導(dǎo)航欄。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2984

    瀏覽量

    106925
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3901

    瀏覽量

    65783
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4887

    瀏覽量

    70266
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    6870
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    mysql分頁(yè)

    第7章 分頁(yè)程序(4課時(shí))
    發(fā)表于 04-30 11:51

    JPA分頁(yè)查詢的常用方法

    JPA分頁(yè)查詢與條件分頁(yè)查詢
    發(fā)表于 10-23 17:10

    MyBatis的整合

    SpringBoot-15-之整合MyBatis-注解篇+分頁(yè)
    發(fā)表于 10-28 08:09

    請(qǐng)問mybatis分頁(yè)插件有哪些使用案列?

    mybatis分頁(yè)插件使用案例
    發(fā)表于 11-09 06:21

    XML數(shù)據(jù)分頁(yè)索引技術(shù)研究

    對(duì)海量XML文檔的索引查詢技術(shù)進(jìn)行研究,提出一種XML數(shù)據(jù)分頁(yè)索引查詢實(shí)現(xiàn)方法。該方法把頁(yè)面元素標(biāo)記數(shù)量作為數(shù)據(jù)分頁(yè)依據(jù),建立XML數(shù)據(jù)的分頁(yè)索引,并在該分頁(yè)索引上實(shí)現(xiàn)XPath
    發(fā)表于 03-31 10:07 ?10次下載

    為ORCAD原理圖分頁(yè)連接符添加頁(yè)碼

    為ORCAD原理圖分頁(yè)連接符添加頁(yè)碼
    發(fā)表于 09-18 14:44 ?33次下載
    為ORCAD原理圖<b class='flag-5'>分頁(yè)</b>連接符添加頁(yè)碼

    Jquery簡(jiǎn)單分頁(yè)實(shí)現(xiàn)

    這篇文章主要介紹了Jquery簡(jiǎn)單分頁(yè)實(shí)現(xiàn)方法,實(shí)例分析了jquery分頁(yè)的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下。
    發(fā)表于 11-28 11:55 ?1134次閱讀

    如何管理Linux 的內(nèi)存分頁(yè)?

    內(nèi)存是計(jì)算機(jī)的主存儲(chǔ)器。內(nèi)存為進(jìn)程開辟出進(jìn)程空間,讓進(jìn)程在其中保存數(shù)據(jù)。我將從內(nèi)存的物理特性出發(fā),深入到內(nèi)存管理的細(xì)節(jié),特別是了解虛擬內(nèi)存和內(nèi)存分頁(yè)的概念。
    的頭像 發(fā)表于 07-28 08:24 ?3961次閱讀
    如何管理Linux 的內(nèi)存<b class='flag-5'>分頁(yè)</b>?

    真空吸附式分頁(yè)機(jī)產(chǎn)品特點(diǎn)

    這是一臺(tái)專為塑料袋,包裝袋、紙盒等設(shè)計(jì)的分頁(yè)設(shè)備,它能快速單張分離到輸送帶,廣泛適用于醫(yī)藥、食品、日化等行業(yè)。 真空吸附式分頁(yè)機(jī)用于將成疊的包裝袋或紙盒自動(dòng)分開成單頁(yè)傳送到輸送帶上,具有自動(dòng)吸附作用
    的頭像 發(fā)表于 09-27 09:40 ?1551次閱讀

    MyBatis流式查詢輕松幫你解決分頁(yè)慢的問題

    結(jié)果。流式查詢的好處是能夠降低內(nèi)存使用。 如果沒有流式查詢,我們想要從數(shù)據(jù)庫(kù)取 1000 萬條記錄而又沒有足夠的內(nèi)存時(shí),就不得不分頁(yè)查詢,而分頁(yè)查詢效率取決于表設(shè)計(jì),如果設(shè)計(jì)的不好,就無法執(zhí)行高效的分頁(yè)查詢。因此流式查詢是一個(gè)數(shù)
    的頭像 發(fā)表于 08-04 15:52 ?4549次閱讀

    如何優(yōu)化MySQL百萬數(shù)據(jù)的深分頁(yè)問題

    我們?nèi)粘W?b class='flag-5'>分頁(yè)需求時(shí),一般會(huì)用limit實(shí)現(xiàn),但是當(dāng)偏移量特別大的時(shí)候,查詢效率就變得低下。本文將分四個(gè)方案,討論如何優(yōu)化MySQL百萬數(shù)據(jù)的深分頁(yè)問題,并附上最近優(yōu)化生產(chǎn)慢SQL的實(shí)戰(zhàn)案例。
    的頭像 發(fā)表于 04-06 15:12 ?2086次閱讀

    一文詳解linux的分頁(yè)模型

    也就是我們實(shí)際中編碼時(shí)遇到的內(nèi)存地址并不是對(duì)應(yīng)于實(shí)際內(nèi)存上的地址,我們編碼中使用的地址是一個(gè)邏輯地址,會(huì)通過分段和分頁(yè)這兩個(gè)機(jī)制把它轉(zhuǎn)為物理地址。而由于linux使用的分段機(jī)制有限,可以認(rèn)為
    的頭像 發(fā)表于 05-18 08:59 ?2362次閱讀
    一文詳解linux的<b class='flag-5'>分頁(yè)</b>模型

    圖文詳解Linux分頁(yè)機(jī)制

    分頁(yè)機(jī)制是 80x86 內(nèi)存管理機(jī)制的第二種機(jī)制,分段機(jī)制用于把虛擬地址轉(zhuǎn)換為線性地址,而分頁(yè)機(jī)制用于把線性地址轉(zhuǎn)換為物理地址。
    發(fā)表于 05-30 09:10 ?682次閱讀
    圖文詳解Linux<b class='flag-5'>分頁(yè)</b>機(jī)制

    聊聊分頁(yè)列表緩存設(shè)計(jì)

    這是最簡(jiǎn)單易懂的方案,我們按照不同的分頁(yè)條件查詢出結(jié)果后,直接緩存分頁(yè)結(jié)果 。
    的頭像 發(fā)表于 06-06 18:25 ?918次閱讀
    聊聊<b class='flag-5'>分頁(yè)</b>列表緩存設(shè)計(jì)

    什么是虛擬內(nèi)存分頁(yè) Windows系統(tǒng)虛擬內(nèi)存優(yōu)化方法

    虛擬內(nèi)存分頁(yè)概述 在Windows操作系統(tǒng)中,虛擬內(nèi)存是通過分頁(yè)機(jī)制實(shí)現(xiàn)的。分頁(yè)允許系統(tǒng)將內(nèi)存中的數(shù)據(jù)移動(dòng)到硬盤上,以便為當(dāng)前運(yùn)行的程序騰出空間。這個(gè)過程對(duì)于保持系統(tǒng)的流暢運(yùn)行至關(guān)重要,尤其是在
    的頭像 發(fā)表于 12-04 09:16 ?1282次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品