1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        MySQL中order by的實(shí)現(xiàn)原理

        共 970字,需瀏覽 2分鐘

         ·

        2021-03-26 10:42

        點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”

        優(yōu)質(zhì)文章,第一時(shí)間送達(dá)

        76套java從入門到精通實(shí)戰(zhàn)課程分享

        全字段排序

        MySQL會(huì)給每個(gè)線程分配一塊內(nèi)存用于排序,稱為sort_buffer。

        語(yǔ)句的執(zhí)行流程:

        (1)初始化sort_buffer,確定放入select的字段

        (2)找到滿足條件的行取出select的字段存入sort_buffer中

        (3)一直查找到不滿足條件的為止

        (4)對(duì)sort_buffer中的數(shù)據(jù)按照排序的字段做排序


        sort_buffer_size可以設(shè)置sort_buffer的大小。如果要排序的數(shù)據(jù)量小于 sort_buffer_size,排序就在內(nèi)存中完成。但如果排序數(shù)據(jù)量太大,內(nèi)存放不下,則不得不利用磁盤臨時(shí)文件輔助排序。

        rowid排序

        max_length_for_sort_data,是 MySQL 中專門控制用于排序的行數(shù)據(jù)的長(zhǎng)度的一個(gè)參數(shù)。它的意思是,如果單行的長(zhǎng)度超過這個(gè)值,MySQL 就認(rèn)為單行太大,要換一個(gè)算法。

        語(yǔ)句執(zhí)行流程:

        (1)初始化sort_buffer,確定放入id和要排序的字段

        (2)找到滿足條件的行取出這兩個(gè)字段存入sort_buffer中

        (3)一直查找到不滿足條件的為止

        (4)對(duì)sort_buffer中的數(shù)據(jù)按照排序的字段做排序

        (5)遍歷排序結(jié)果,并按照id的值回表取出select的字段


        如果MySQL認(rèn)為內(nèi)存足夠大就會(huì)使用全字段排序,否則會(huì)使用rowid排序。對(duì)于 InnoDB 表來說,rowid 排序會(huì)要求回表多造成磁盤大量隨機(jī)讀,因此不會(huì)被優(yōu)先選擇。

        ————————————————

        版權(quán)聲明:本文為CSDN博主「mangoBUPT」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

        原文鏈接:

        https://blog.csdn.net/mcmango/article/details/115041208





        粉絲福利:Java從入門到入土學(xué)習(xí)路線圖

        ??????

        ??長(zhǎng)按上方微信二維碼 2 秒


        感謝點(diǎn)贊支持下哈 

        瀏覽 37
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            狠狠干天天操| 翔田千里无码视频| 日本爱爱片| 日韩AV无码一区二区三区| 毛片在线观看网站| 人人操人人| 欧美男女操逼视频| 北条麻妃99精品| 大香蕉人妻| AV资源网站在线|