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

Mysql查詢最近一條記錄的sql語句(優(yōu)化篇)

 更新時間:2018年05月26日 10:44:32   作者:一只阿木木  
這篇文章主要介紹了Mysql查詢最近一條記錄的sql語句,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧

下策——查詢出結(jié)果后將時間排序后取第一條

select * from a 
where create_time<="2017-03-29 19:30:36" 
order by create_time desc
limit 1

這樣做雖然可以取出當前時間最近的一條記錄,但是一次查詢需要將表遍歷一遍,對于百萬以上數(shù)據(jù)查詢將比較費時;limit是先取出全部結(jié)果,然后取第一條,相當于查詢中占用了不必要的時間和空間;還有如果需要批量取出最近一條記錄,比方說:“一個訂單表,有用戶,訂單時間,金額,需要一次性查詢所有用戶的最近的一條訂單記錄”,那么每個用戶一次查詢就要做一次整表的遍歷,數(shù)據(jù)大的情況下,時間將會以指數(shù)形式增長,不能投入實際使用。

中策——查詢排序后group by

select * from (
  select * from a
  where create_time<="2017-03-29 19:30:36" 
  order by create_time desc
)  group by user_id

后來發(fā)現(xiàn)使用group by 可以根據(jù)group by 的參數(shù)列分組,但返回的結(jié)果只有一條,仔細觀察發(fā)現(xiàn)group by是將分組后的第一條記錄返回。時間在查詢后默認是順序排列,因此需要先將時間倒序排列,方可取出距離當前最近一條。

這樣查詢實際上還是進行了兩次查詢,雖然時間上相比第一個方法有了質(zhì)的飛躍,但是還可以進一步優(yōu)化。

上策——將max() 方法和group by結(jié)合使用

select *,max(create_time) from a
where create_time<="2017-03-29 19:30:36" 
group by user_id

這句可以理解為將結(jié)果集根據(jù)user_id分組,每組取time最大一條記錄。這樣就很好的實現(xiàn)了批量查詢最近記錄,并且僅僅需要遍歷一次表,即使在數(shù)據(jù)量巨大的情況下也可以在很短的時間查出結(jié)果。

 擴展:

現(xiàn)在有一張資產(chǎn)設備表:base_assets_turn

查詢資產(chǎn)的最新保管人

注:假設資產(chǎn)編號   ASSETS_ID=254

下策:

select * from base_assets_turn 
where ASSETS_ID = 254
order by create_time desc
limit 1

中策:

select * from ( select * from base_assets_turn 
where ASSETS_ID = 254
order by create_time desc) tt GROUP BY tt.ASSETS_ID;

上策:

那么上策該如何書寫呢,歡迎留言!

以上所述是小編給大家?guī)淼腗ysql查詢最近一條記錄的sql語句(優(yōu)化篇),希望對大家有所幫助,如果大家有任何疑問歡迎給我留言!

相關文章

  • MySQL默認字符集設置詳情

    MySQL默認字符集設置詳情

    這篇文章主要介紹了MySQL默認字符集設置詳情,在MySQL?8.0版本之前,默認字符集為latin1?,utf8字符集指向的是utf8mb3,更多相關內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL事務管理的作用詳解

    MySQL事務管理的作用詳解

    事務就是一組DML語句組成,這些語句在邏輯上存在相關性,這一組DML語句要么全部成功,要么全部失敗,是一個整體。MySQL提供一種機制,保證我們達到這樣的效果。事務還規(guī)定不同的客戶端看到的數(shù)據(jù)是不相同的
    2022-08-08
  • SQL實現(xiàn)LeetCode(175.聯(lián)合兩表)

    SQL實現(xiàn)LeetCode(175.聯(lián)合兩表)

    這篇文章主要介紹了SQL實現(xiàn)LeetCode(175.聯(lián)合兩表),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 關于MySQL中savepoint語句使用時所出現(xiàn)的錯誤

    關于MySQL中savepoint語句使用時所出現(xiàn)的錯誤

    這篇文章主要介紹了關于MySQL中savepoint語句使用時所出現(xiàn)的錯誤,字符串出現(xiàn)e時所產(chǎn)生的問題也被作為MySQL的bug進行過提交,需要的朋友可以參考下
    2015-05-05
  • MySQL?Server?層四個日志詳解

    MySQL?Server?層四個日志詳解

    這篇文章主要介紹了MySQL?Server?層四個日志,包括錯誤日志,查詢?nèi)罩荆M制日志及慢查詢?nèi)罩?,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • MySQL中的唯一性約束與NULL詳解

    MySQL中的唯一性約束與NULL詳解

    這里記錄的是很久之前的一個 bug 了,主要給大家介紹了關于MySQL中唯一性約束與NULL的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • 關于MySQL Memory存儲引擎的相關知識

    關于MySQL Memory存儲引擎的相關知識

    這篇文章主要介紹了關于MySQL Memory存儲引擎的相關知識,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • MySQL8.0鎖等待排查的實現(xiàn)

    MySQL8.0鎖等待排查的實現(xiàn)

    MySQL8.0相較于5.7版本在鎖等待排查方面發(fā)生了顯著變化,原有的INNODB_LOCKS和INNODB_LOCK_WAITS表被移除,本篇文章將結(jié)合這些改動,介紹 MySQL 8.0 版本如何排查鎖等待問題,感興趣的可以了解一下
    2024-09-09
  • MySQL分類排名和分組TOP N實例詳解

    MySQL分類排名和分組TOP N實例詳解

    大家好,本篇文章主要講的是MySQL分類排名和分組TOP N實例詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗分享

    mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗分享

    mysql分頁是我們在開發(fā)經(jīng)常遇到的一個功能,最近在實現(xiàn)該功能的時候遇到一個問題,所以這篇文章主要給大家介紹了關于mysql分頁時offset過大的Sql優(yōu)化經(jīng)驗,文中介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面跟著小編來一起看看吧。
    2017-08-08

最新評論