麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

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

2024-07-25 19:08:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

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

這樣做雖然可以取出當(dāng)前時(shí)間最近的一條記錄,但是一次查詢需要將表遍歷一遍,對(duì)于百萬(wàn)以上數(shù)據(jù)查詢將比較費(fèi)時(shí);limit是先取出全部結(jié)果,然后取第一條,相當(dāng)于查詢中占用了不必要的時(shí)間和空間;還有如果需要批量取出最近一條記錄,比方說(shuō):“一個(gè)訂單表,有用戶,訂單時(shí)間,金額,需要一次性查詢所有用戶的最近的一條訂單記錄”,那么每個(gè)用戶一次查詢就要做一次整表的遍歷,數(shù)據(jù)大的情況下,時(shí)間將會(huì)以指數(shù)形式增長(zhǎng),不能投入實(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

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

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

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

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

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

 擴(kuò)展:

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

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

注:假設(shè)資產(chǎn)編號(hào)   ASSETS_ID=254

下策:

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

中策:

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

上策:

那么上策該如何書(shū)寫(xiě)呢,歡迎留言!

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩国产成人在线观看 | 91热久久免费频精品黑人99 | 一级大片一级一大片 | 九九热精品在线 | 欧美一级不卡视频 | 黄视频网站免费在线观看 | 成人羞羞视频在线观看 | 久综合| 欧美成人三级大全 | 中文字幕亚洲一区二区三区 | 失禁高潮抽搐喷水h | 作爱在线观看 | 成人三级在线播放 | 成年免费视频黄网站在线观看 | 国产精品资源手机在线播放 | 精品一区二区在线观看视频 | 国产亚洲精品视频中文字幕 | 免费在线观看成人av | 精品久久久久久久久久久久久久 | 永久av在线免费观看 | www.精品久久 | 国产精品久久久久久久av | 久久久久一区二区三区四区五区 | 一级片久久免费 | 国产成人高清成人av片在线看 | 成年人视频在线免费观看 | 欧美a在线观看 | 欧美视频在线一区二区三区 | 亚洲国产网站 | 韩国19禁在线 | 国产精品一区二区三区在线播放 | 久久中文字幕在线观看 | 黄色片免费在线 | 亚洲国产精品一区二区精品 | 成人精品视频在线 | 国产精品影视 | 人人舔人人舔 | 男女一边摸一边做羞羞视频免费 | 国内精品久久久久久久久久久久 | 玖草在线资源 | 国产午夜精品一区二区三区在线观看 |