亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql order by limit 1和max的比較及說(shuō)明

 更新時(shí)間:2025年09月12日 09:20:02   作者:hammring  
使用ORDER BY + LIMIT 1和MAX查詢最大值時(shí),ORDER BY + LIMIT 1更快,因主鍵索引有序,ORDER BY在找到第一條數(shù)據(jù)后停止,而MAX直接通過(guò)索引獲取最大值,無(wú)需遍歷表,執(zhí)行計(jì)劃顯示前者使用索引排序,后者利用索引優(yōu)化直接返回結(jié)果

在一次數(shù)據(jù)的需求中,去用order by+limit 1和 max兩種方式求數(shù)據(jù)的最大值時(shí),發(fā)現(xiàn)在同一過(guò)濾條件下order by limit 1執(zhí)行時(shí)間要比max快。然后從一下兩個(gè)角度對(duì)問(wèn)題進(jìn)行來(lái)思考。

1.查看執(zhí)行計(jì)劃

  • a.max查詢計(jì)劃

  • b.order by+limit 1查詢計(jì)劃

其中Extra是指執(zhí)行情況的描述和說(shuō)明。max的extra對(duì)應(yīng)的值是 Select tables optimized away

order by + limit 的extra選項(xiàng)對(duì)應(yīng)的值是 Using index

extra項(xiàng)解釋:

Select tables optimized away:

使用某些聚合函數(shù)(比如 max、min)來(lái)訪問(wèn)存在索引的某個(gè)字段

來(lái)自于mysql官網(wǎng)對(duì)Select tables optimized away的描述:

For explains on simple count queries (i.e. explain select count(*) from 
people) the extra section will read "Select tables optimized away.
" This is due to the fact that MySQL can read the result directly from
 the table internals and  therefore does not need to perform the select.

Using index:直接在主鍵索引上完成查詢和所有數(shù)據(jù)的獲取。

2.order by和where的執(zhí)行順序

是否是先做的order by,后使用where過(guò)濾。

結(jié)論:因?yàn)閙ax和order by+limit 1都是使用的主鍵值進(jìn)行查詢,而主鍵在mysql中是b+樹(shù)。在葉子節(jié)點(diǎn)主鍵id本身就是按從小大的順序排列的。所以在查詢中會(huì)出現(xiàn)以下兩種情況:

a.如果是查詢普通列(非主鍵且該值沒(méi)有索引列)條件,max()的查詢速度要優(yōu)于order by+limit 1,原因是從explain的執(zhí)行計(jì)劃中可以看出:order by+limit 1使用了索引,而使用max根本沒(méi)有遍歷表或索引就返回?cái)?shù)據(jù)了

b.如果是主鍵值的查詢可以分兩種情況來(lái)討論:

1.)如果是max()和order by速度的比較

max()的速度要比order by快,order by會(huì)把所有查詢到的結(jié)果并展示出來(lái)。

select max(id) from  table_name:
select id  from  table_name  order by id desc;

2.)如果是max()和order by+limit 1 速度的比較

order by+limit 1會(huì)在查到第一條數(shù)據(jù)時(shí)返回結(jié)果。而不是對(duì)整個(gè)結(jié)果進(jìn)行排序。

如果使用索引來(lái)完成排序,這將非???。

如果你將LIMIT row_count子句與ORDER BY子句組合在一起使用的話,一旦找到第一個(gè)row_count之后,MySQL不會(huì)對(duì)結(jié)果集的任何剩余部分進(jìn)行排序。

這種行為的一種表現(xiàn)形式是,一個(gè)ORDER BY查詢帶或者不帶LIMIT可能返回行的順序是不一樣的。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL的commit是如何commit源碼解析

    MySQL的commit是如何commit源碼解析

    這篇文章主要為大家介紹了MySQL的commit是如何commit源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • ubuntu20.04配置mysql8.0的實(shí)現(xiàn)步驟

    ubuntu20.04配置mysql8.0的實(shí)現(xiàn)步驟

    本文主要介紹了ubuntu20.04配置mysql8.0的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 淺析MySQL 鎖和事務(wù)

    淺析MySQL 鎖和事務(wù)

    這篇文章主要介紹了MySQL 鎖和事務(wù)的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySQL半同步復(fù)制原理配置與介紹詳解

    MySQL半同步復(fù)制原理配置與介紹詳解

    這篇文章主要介紹了MySQL半同步復(fù)制原理配置與介紹詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • MySQL 表數(shù)據(jù)的導(dǎo)入導(dǎo)出操作示例

    MySQL 表數(shù)據(jù)的導(dǎo)入導(dǎo)出操作示例

    這篇文章主要介紹了MySQL 表數(shù)據(jù)的導(dǎo)入導(dǎo)出操作,結(jié)合實(shí)例形式分析了MySQL 表數(shù)據(jù)的導(dǎo)入導(dǎo)出操作基本命令、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • mysql分表分庫(kù)的應(yīng)用場(chǎng)景和設(shè)計(jì)方式

    mysql分表分庫(kù)的應(yīng)用場(chǎng)景和設(shè)計(jì)方式

    為大家講述一下在mysql在什么到時(shí)候需要進(jìn)行分表分庫(kù),以及現(xiàn)實(shí)的設(shè)計(jì)方式。
    2017-11-11
  • mysql8.0配置文件my.ini詳解

    mysql8.0配置文件my.ini詳解

    這篇文章主要介紹了mysql8.0配置文件my.ini,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL中Join的算法(NLJ、BNL、BKA)詳解

    MySQL中Join的算法(NLJ、BNL、BKA)詳解

    這篇文章主要介紹了MySQL中Join的算法(NLJ、BNL、BKA)詳解,Join是MySQL中最常見(jiàn)的查詢操作之一,用于從多個(gè)表中獲取數(shù)據(jù)并將它們組合在一起,本文將探討這兩種算法的工作原理,以及如何在MySQL中使用它們
    2023-07-07
  • Mysqli基礎(chǔ)知識(shí)

    Mysqli基礎(chǔ)知識(shí)

    本文給大家講述的是Mysqli的基礎(chǔ)知識(shí),非常的淺顯易懂,有需要的小伙伴就可以參考下。
    2015-07-07
  • Windows下安裝MySQL 5.7.17壓縮版中遇到的坑

    Windows下安裝MySQL 5.7.17壓縮版中遇到的坑

    最近發(fā)現(xiàn)原來(lái)好端端的MySQL突然間不能用了,無(wú)奈只能重新下載了最新的MySQL 5.7.17 Community 壓縮版 for Windows 64-bit。但在安裝過(guò)程中遇到了一些意外的問(wèn)題,通過(guò)查找相關(guān)資料也解決了,所以想著總結(jié)出來(lái),方便需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01

最新評(píng)論