• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            orderby(orderby默認(rèn)是升序還是降序)

            更新時(shí)間:2023-03-01 21:24:30 閱讀: 評(píng)論:0

            order by是什么意思

            order by 是排序的意思。order by 列名1,列名2,..... 你按照什么排序就寫什么列。 如果列名后什么都不寫,也可以寫ASC,表示升序排列,如果要想降序排列,在列名后面寫desc 。

            order by是什么意思

            order by 從英文里理解就是行的排序方式,默認(rèn)的為升序。 order by 后面必須列出排序的字段名,可以是多個(gè)字段名。

            group by 從英文里理解就是分組。必須有“聚合函數(shù)”來配合才能使用,使用時(shí)至少需要一個(gè)分組標(biāo)志字段。

            在使用group by的語句中,只能lect用于分類的列(表達(dá)式),或聚合函數(shù)。
            where條件用于group by之前,having用于group by 之后對(duì)結(jié)果進(jìn)行篩選。

            order用法

            一、名詞order:
            1、作“順序”、“次序”。常用短語:in order of 按順序。如:
            A list of some of the common metals in the order of their activity is given below. 下面列出了某些金屬按其活潑順序排列的一個(gè)表格.
            2、作“秩序”。常用短語:keep ... in order 使......有序。如:
            The machine is in good working order. 機(jī)器運(yùn)轉(zhuǎn)良好.
            Our laboratory is kept in good order. 我們的實(shí)驗(yàn)室保持整齊.(句中in good order為主語補(bǔ)語.)
            3、作“指示、命令”。常用短語:give sb. anorderto do sth.命令某人做某事。如:
            He gave orders for the work to be started. (=…orders that the work should be started.)他下令開始工作.
            4、點(diǎn)菜;所點(diǎn)的飲食菜肴。
            二、動(dòng)詞order:
            1、作”命令”。常用短語:ordersb.to do sth. 令某人做某事。如:
            The doctor ordered him to stay there.醫(yī)生囑咐他留在那里。(不定式短語to stay there作賓語補(bǔ)語)
            2、作“點(diǎn)餐、“訂購”。常用短語:ordersth.for sb./ordersb.for sth.為某人訂購/點(diǎn)某物。如:
            They have ordered 1,000 oil pumps from our factory.他們已向我廠訂購1,000臺(tái)油泵。

            來源:網(wǎng)絡(luò)。本文版權(quán)歸原創(chuàng)作者所以。


            order by 和 group by 的區(qū)別

            order by 和 group by的區(qū)別為:指代不同、側(cè)重點(diǎn)不同、引證用法不同

            一、指代不同

            1、order by:排序依據(jù)。

            2、group by:進(jìn)行分組。

            二、側(cè)重點(diǎn)不同

            1、order by:用來對(duì)數(shù)據(jù)庫的一組數(shù)據(jù)進(jìn)行排序。

            2、group by:指定的規(guī)則對(duì)數(shù)據(jù)進(jìn)行分組,所謂的分組就是將一個(gè)“數(shù)據(jù)集”劃分成若干個(gè)“小區(qū)域”,然后針對(duì)若干個(gè)“小區(qū)域”進(jìn)行數(shù)據(jù)處理。

            三、引證用法不同

            1、order by:order作“次序,順序”“治安,秩序”“整齊,有條理”解時(shí),是不可數(shù)名詞。作“訂購,訂貨”“命令,囑咐”“匯票,匯單”解時(shí),是可數(shù)名詞。

            2、group by:group的基本意思是“群,團(tuán)體,組類”,指由很多的人或物偶然或有意組成的一個(gè)有秩序、有組織的整體,有時(shí)也可指較小的“人群”,還可以指一個(gè)大型的商業(yè)機(jī)構(gòu),即“集團(tuán)”或某種“類別”。


            order by默認(rèn)是升序還是降序?

            orderby默認(rèn)是升序。orderby關(guān)鍵字用于對(duì)結(jié)果集進(jìn)行排序,但是orderby關(guān)鍵字默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序,如果需要按照降序?qū)τ涗涍M(jìn)行排序,需用DESC關(guān)鍵字。

            orderby的語法

            SELECTcolumn1,column2

            FROMtable_name

            ORDERBYcolumn1,column2ASC|DESC。

            ORDERBYcolumn1,column2ASC先對(duì)column1進(jìn)行升序排序,在column1相同時(shí)再按照column2升序排列,ASC可省略不寫,因?yàn)镺RDERBY默認(rèn)就是按照升序?qū)τ涗涍M(jìn)行排序。

            ORDERBYcolumn1,column2DESC先對(duì)column1進(jìn)行降序排序,在column1相同時(shí)再按照column2降序排列,DESC不可省略。


            order by 和 group by 的區(qū)別?

            order by 和 group by 的區(qū)別:

            1,order by 從英文里理解就是行的排序方式,默認(rèn)的為升序。 order by 后面必須列出排序的字段名,可以是多個(gè)字段名。

            2,group by 從英文里理解就是分組。必須有“聚合函數(shù)”來配合才能使用,使用時(shí)至少需要一個(gè)分組標(biāo)志字段。

            3,在使用group by的語句中,只能lect用于分類的列(表達(dá)式),或聚合函數(shù)。
            where條件用于group by之前,having用于group by 之后對(duì)結(jié)果進(jìn)行篩選。

            擴(kuò)展資料:

            一、order by用法: 排序查詢、asc升序、desc降序

            示例:

            1.lect * from 學(xué)生表

            2.order by 年齡

            3.查詢學(xué)生表信息、按年齡的升序(默認(rèn)、可缺省、從低到高)排列顯示也可以多條件排序、 比如 order by 年齡,成績(jī) desc

            4.按年齡升序排列后、再按成績(jī)降序排列。

            二、group by用法: 分組查詢、having 只能用于group by子句、作用于組內(nèi),having條件子句可以直接跟函數(shù)表達(dá)式。使用group by 子句的查詢語句需要使用聚合函數(shù)。

            示例:

            1.lect 學(xué)號(hào),SUM(成績(jī)) from 選課表 group by 學(xué)號(hào) 按學(xué)號(hào)分組、查詢每個(gè)學(xué)號(hào)的總成績(jī)

            2.lect 學(xué)號(hào),AVG(成績(jī)) from 選課表

            3.group by 學(xué)號(hào)

            4.having AVG(成績(jī))>(lect AVG(成績(jī)) from 選課表 where 課程號(hào)='001')

            5.order by AVG(成績(jī)) desc

            6.查詢平均成績(jī)大于001課程平均成績(jī)的學(xué)號(hào)、并按平均成績(jī)的降序排列。

            參考資料:

            百度百科- 結(jié)構(gòu)化查詢語言


            order by什么意思

            order by
            排序依據(jù); 順序; 字段名; 降序排列; 記錄排序;
            [例句]All the other ingredients, including water, have to be listed in descendingorder by weight.
            所有其他原料,包括水在內(nèi),都需要根據(jù)重量依次降序排列。

            對(duì)order by的理解

            前言

            日常開發(fā)中,我們經(jīng)常會(huì)使用到order by,親愛的小伙伴,你是否知道order by 的工作原理呢?order by的優(yōu)化思路是怎樣的呢?使用order by有哪些注意的問題呢?本文將跟大家一起來學(xué)習(xí),攻克order by~

            一個(gè)使用order by 的簡(jiǎn)單例子

            假設(shè)用一張員工表,表結(jié)構(gòu)如下:

            表數(shù)據(jù)如下:

            我們現(xiàn)在有這么一個(gè)需求:查詢前10個(gè),來自深圳員工的姓名、年齡、城市,并且按照年齡小到大排序。對(duì)應(yīng)的 SQL 語句就可以這么寫:

            這條語句的邏輯很清楚,但是它的底層執(zhí)行流程是怎樣的呢?

            order by 工作原理

            explain 執(zhí)行計(jì)劃

            我們先用Explain關(guān)鍵字查看一下執(zhí)行計(jì)劃

            我們可以發(fā)現(xiàn),這條SQL使用到了索引,并且也用到排序。那么它是怎么排序的呢?

            全字段排序

            MySQL 會(huì)給每個(gè)查詢線程分配一塊小內(nèi)存,用于排序的,稱為 sort_buffer。什么時(shí)候把字段放進(jìn)去排序呢,其實(shí)是通過idx_city索引找到對(duì)應(yīng)的數(shù)據(jù),才把數(shù)據(jù)放進(jìn)去啦。

            我們回顧下索引是怎么找到匹配的數(shù)據(jù)的,現(xiàn)在先把索引樹畫出來吧,idx_city索引樹如下:

            idx_city索引樹,葉子節(jié)點(diǎn)存儲(chǔ)的是主鍵id。還有一棵id主鍵聚族索引樹,我們?cè)佼嫵鼍圩逅饕龢鋱D吧:

            我們的查詢語句是怎么找到匹配數(shù)據(jù)的呢?先通過idx_city索引樹,找到對(duì)應(yīng)的主鍵id,然后再通過拿到的主鍵id,搜索id主鍵索引樹,找到對(duì)應(yīng)的行數(shù)據(jù)。

            加上order by之后,整體的執(zhí)行流程就是:

            執(zhí)行示意圖如下:

            將查詢所需的字段全部讀取到sort_buffer中,就是全字段排序。這里面,有些小伙伴可能會(huì)有個(gè)疑問,把查詢的所有字段都放到sort_buffer,而sort_buffer是一塊內(nèi)存來的,如果數(shù)據(jù)量太大,sort_buffer放不下怎么辦呢?

            磁盤臨時(shí)文件輔助排序

            實(shí)際上,sort_buffer的大小是由一個(gè)參數(shù)控制的:sort_buffer_size。如果要排序的數(shù)據(jù)小于sort_buffer_size,排序在sort_buffer 內(nèi)存中完成,如果要排序的數(shù)據(jù)大于sort_buffer_size,則借助磁盤文件來進(jìn)行排序

            如何確定是否使用了磁盤文件來進(jìn)行排序呢?可以使用以下這幾個(gè) 命令

            可以從 number_of_tmp_files 中看出,是否使用了臨時(shí)文件。

            number_of_tmp_files 表示使用來排序的磁盤臨時(shí)文件數(shù)。如果number_of_tmp_files>0,則表示使用了磁盤文件來進(jìn)行排序。

            使用了磁盤臨時(shí)文件,整個(gè)排序過程又是怎樣的呢?

            TPS: 借助磁盤臨時(shí)小文件排序,實(shí)際上使用的是歸并排序算法。

            小伙伴們可能會(huì)有個(gè)疑問,既然sort_buffer放不下,就需要用到臨時(shí)磁盤文件,這會(huì)影響排序效率。那為什么還要把排序不相關(guān)的字段(name,city)放到sort_buffer中呢?只放排序相關(guān)的age字段,它不香嗎?可以了解下rowid 排序。

            rowid 排序

            rowid 排序就是,只把查詢SQL需要用于排序的字段和主鍵id,放到sort_buffer中。那怎么確定走的是全字段排序還是rowid 排序排序呢?

            實(shí)際上有個(gè)參數(shù)控制的。這個(gè)參數(shù)就是max_length_for_sort_data,它表示MySQL用于排序行數(shù)據(jù)的長度的一個(gè)參數(shù),如果單行的長度超過這個(gè)值,MySQL 就認(rèn)為單行太大,就換rowid 排序。我們可以通過 命令 看下這個(gè)參數(shù)取值。

            max_length_for_sort_data 默認(rèn)值是1024。因?yàn)楸疚氖纠衝ame,age,city長度=64+4+64 =132 < 1024, 所以走的是全字段排序。我們來改下這個(gè)參數(shù),改小一點(diǎn).

            使用rowid 排序的話,整個(gè)SQL執(zhí)行流程又是怎樣的呢?

            執(zhí)行示意圖如下:

            對(duì)比一下全字段排序的流程,rowid 排序多了一次回表。

            什么是回表?拿到主鍵再回到主鍵索引查詢的過程,就叫做回表”

            我們通過optimizer_trace,可以看到是否使用了rowid排序的:

            全字段排序與rowid排序?qū)Ρ?/p>

            一般情況下,對(duì)于InnoDB存儲(chǔ)引擎,會(huì)優(yōu)先使用全字段排序。可以發(fā)現(xiàn) max_length_for_sort_data 參數(shù)設(shè)置為1024,這個(gè)數(shù)比較大的。一般情況下,排序字段不會(huì)超過這個(gè)值,也就是都會(huì)走全字段排序。

            order by的一些優(yōu)化思路

            我們?nèi)绾蝺?yōu)化order by語句呢?

            聯(lián)合索引優(yōu)化

            再回顧下示例SQL的查詢計(jì)劃

            我們給查詢條件city和排序字段age,加個(gè)聯(lián)合索引idx_city_age。再去查看執(zhí)行計(jì)劃:

            可以發(fā)現(xiàn),加上idx_city_age聯(lián)合索引,就不需要Using filesort排序了。為什么呢?因?yàn)樗饕旧硎怯行虻模覀兛梢钥聪耰dx_city_age聯(lián)合索引示意圖,如下:

            整個(gè)SQL執(zhí)行流程變成醬紫:

            流程示意圖如下:

            從示意圖看來,還是有一次回表操作。針對(duì)本次示例,有沒有更高效的方案呢?有的,可以使用覆蓋索引:

            覆蓋索引:在查詢的數(shù)據(jù)列里面,不需要回表去查,直接從索引列就能取到想要的結(jié)果。換句話說,你SQL用到的索引列數(shù)據(jù),覆蓋了查詢結(jié)果的列,就算上覆蓋索引了。”

            我們給city,name,age 組成一個(gè)聯(lián)合索引,即可用到了覆蓋索引,這時(shí)候SQL執(zhí)行時(shí),連回表操作都可以省去啦。

            調(diào)整參數(shù)優(yōu)化

            我們還可以通過調(diào)整參數(shù),去優(yōu)化order by的執(zhí)行。比如可以調(diào)整sort_buffer_size的值。因?yàn)閟ort_buffer值太小,數(shù)據(jù)量大的話,會(huì)借助磁盤臨時(shí)文件排序。如果MySQL服務(wù)器配置高的話,可以使用稍微調(diào)整大點(diǎn)。

            我們還可以調(diào)整max_length_for_sort_data的值,這個(gè)值太小的話,order by會(huì)走rowid排序,會(huì)回表,降低查詢性能。所以max_length_for_sort_data可以適當(dāng)大一點(diǎn)。

            當(dāng)然,很多時(shí)候,這些MySQL參數(shù)值,我們直接采用默認(rèn)值就可以了。

            使用order by 的一些注意點(diǎn):沒有where條件,order by字段需要加索引嗎

            日常開發(fā)過程中,我們可能會(huì)遇到?jīng)]有where條件的order by,那么,這時(shí)候order by后面的字段是否需要加索引呢。如有這么一個(gè)SQL,create_time是否需要加索引:

            無條件查詢的話,即使create_time上有索引,也不會(huì)使用到。因?yàn)镸ySQL優(yōu)化器認(rèn)為走普通二級(jí)索引,再去回表成本比全表掃描排序更高。所以選擇走全表掃描,然后根據(jù)全字段排序或者rowid排序來進(jìn)行。

            如果查詢SQL修改一下:

            分頁limit過大時(shí),會(huì)導(dǎo)致大量排序怎么辦?

            假設(shè)SQL如下:

            索引存儲(chǔ)順序與order by不一致,如何優(yōu)化?

            假設(shè)有聯(lián)合索引 idx_age_name, 我們需求修改為這樣:查詢前10個(gè)員工的姓名、年齡,并且按照年齡小到大排序,如果年齡相同,則按姓名降序排。對(duì)應(yīng)的 SQL 語句就可以這么寫:

            我們看下執(zhí)行計(jì)劃,發(fā)現(xiàn)使用到Using filesort

            這是因?yàn)椋琲dx_age_name索引樹中,age從小到大排序,如果age相同,再按name從小到大排序。而order by 中,是按age從小到大排序,如果age相同,再按name從大到小排序。也就是說,索引存儲(chǔ)順序與order by不一致。

            我們?cè)趺磧?yōu)化呢?如果MySQL是8.0版本,支持Descending Indexes,可以這樣修改索引:

            使用了in條件多個(gè)屬性時(shí),SQL執(zhí)行是否有排序過程

            如果我們有聯(lián)合索引idx_city_name,執(zhí)行這個(gè)SQL的話,是不會(huì)走排序過程的,如下:

            但是,如果使用in條件,并且有多個(gè)條件時(shí),就會(huì)有排序過程。

            這是因?yàn)?in有兩個(gè)條件,在滿足深圳時(shí),age是排好序的,但是把滿足上海的age也加進(jìn)來,就不能保證滿足所有的age都是排好序的。因此需要Using filesort。


            本文發(fā)布于:2023-02-28 20:28:00,感謝您對(duì)本站的認(rèn)可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167767707083883.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。

            本文word下載地址:orderby(orderby默認(rèn)是升序還是降序).doc

            本文 PDF 下載地址:orderby(orderby默認(rèn)是升序還是降序).pdf

            上一篇:cmd命令大全
            下一篇:返回列表
            標(biāo)簽:升序   降序   orderby
            相關(guān)文章
            留言與評(píng)論(共有 0 條評(píng)論)
               
            驗(yàn)證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實(shí)用文體寫作網(wǎng)旗下知識(shí)大全大全欄目是一個(gè)全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 午夜短视频日韩免费| 国产激情一区二区三区在线| 高清中文字幕国产精品| 疯狂做受xxxx高潮欧美日本| 国产三级+在线播放| 亚洲精品日韩中文字幕| 精品人妻少妇嫩草av专区| 欧美偷窥清纯综合图区| 婷婷99视频精品全部在线观看| 亚洲av理论在线电影网| 99热这里只有精品久久免费| ā片在线观看免费观看| 久久频这里精品99香蕉| 亚洲一区精品伊人久久| 国产按头口爆吞精在线视频| 亚洲精品一二三中文字幕| 亚洲av色精品一区二区| 亚洲精品一区二区三区大桥未久| 在线看国产精品自拍内射| 极品蜜桃臀一区二区av| 国产精品小粉嫩在线观看 | gogogo高清在线观看视频中文| 日本黄色一区二区三区四区| 九九热免费精品在线视频| 亚洲精品国产老熟女久久| 国产精品中文字幕在线看| 日产无人区一线二码三码2021| 99久久久无码国产精品免费 | 免费观看在线视频一区| 美女大bxxxxn内射| 啪啪av一区二区三区| 福利无遮挡喷水高潮| 亚洲一区二区视频在线观看| 69天堂人成无码免费视频| 日本一区二区三区专线| 精品国产亚洲午夜精品a| 亚洲激情在线一区二区三区| 国偷自产一区二区三区在线视频| 国产在视频线在精品视频2020| 少妇内射高潮福利炮| 特级无码a级毛片特黄|