日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

order排序

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 order排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.MySQL會(huì)為每個(gè)線(xiàn)程分配一個(gè)內(nèi)存(sort_buffer)用于排序該內(nèi)存大小為sort_buffer_size

1>如果排序的數(shù)據(jù)量小于sort_buffer_size,排序?qū)?huì)在內(nèi)存中完成

2>如果排序數(shù)據(jù)量很大,內(nèi)存中無(wú)法存下這么多數(shù)據(jù),則會(huì)使用磁盤(pán)臨時(shí)文件來(lái)輔助排序,也稱(chēng)外部排序

3>在使用外部排序時(shí),MySQL會(huì)分成好幾份單獨(dú)的臨時(shí)文件用來(lái)存放排序后的數(shù)據(jù),然后在將這些文件合并成一個(gè)大文件

sql語(yǔ)句:select city,name,age from t where city='杭州' order by name limit 1000

全字段排序 1.初始化 sort_buffer,確定放入 name、city、age 這三個(gè)字段;

2.從索引 city 找到第一個(gè)滿(mǎn)足 city='杭州’條件的主鍵 id;

3.到主鍵 id 索引取出整行,取 name、city、age 三個(gè)字段的值,存入 sort_buffer 中;

4.從索引 city 取下一個(gè)記錄的主鍵 id;

5.重復(fù)步驟 3、4 直到 city 的值不滿(mǎn)足查詢(xún)條件為止

6.對(duì) sort_buffer 中的數(shù)據(jù)按照字段 name 做快速排序;

7.按照排序結(jié)果取前 1000 行返回給客戶(hù)端。

缺點(diǎn): 1.造成sort_buffer中存放不下很多數(shù)據(jù),因?yàn)槌伺判蜃侄芜€存放其他字段,對(duì)sort_buffer的利用效率不高

2.當(dāng)所需排序數(shù)據(jù)量很大時(shí),會(huì)有很多的臨時(shí)文件,排序性能也會(huì)很差

優(yōu)點(diǎn):MySQL認(rèn)為內(nèi)存足夠大時(shí)會(huì)優(yōu)先選擇全字段排序,因?yàn)檫@種方式比rowid 排序避免了一次回表操作

rowid排序

1.初始化 sort_buffer,確定放入兩個(gè)字段,即 name 和 id;

2.從索引 city 找到第一個(gè)滿(mǎn)足 city='杭州’條件的主鍵 id;

3.到主鍵 id 索引取出整行,取 name、id 這兩個(gè)字段,存入 sort_buffer 中;

4.從索引 city 取下一個(gè)記錄的主鍵 id;

5.重復(fù)步驟 3、4 直到不滿(mǎn)足 city='杭州’條件為止

6.對(duì) sort_buffer 中的數(shù)據(jù)按照字段 name 進(jìn)行排序;

7.遍歷排序結(jié)果,取前 1000 行,并按照 id 的值回到原表中取出 city、name 和 age 三個(gè)字段返回給客戶(hù)端。

對(duì)比全字段排序流程圖你會(huì)發(fā)現(xiàn),rowid 排序多訪(fǎng)問(wèn)了一次表 t 的主鍵索引

優(yōu)點(diǎn):更好的利用內(nèi)存的sort_buffer進(jìn)行排序操作,盡量減少對(duì)磁盤(pán)的訪(fǎng)問(wèn)

缺點(diǎn):回表的操作是隨機(jī)IO,會(huì)造成大量的隨機(jī)讀,不一定就比全字段排序減少對(duì)磁盤(pán)的訪(fǎng)問(wèn)

轉(zhuǎn)載于:https://juejin.im/post/5d5a37a1e51d453b373b4d0c

總結(jié)

以上是生活随笔為你收集整理的order排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。