第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MIN / MAX與ORDER BY和LIMIT

MIN / MAX與ORDER BY和LIMIT

紅糖糍粑 2019-08-12 17:24:23
MIN / MAX與ORDER BY和LIMIT在以下查詢中,您認為哪種方法更好?你的理由是什么(代碼效率,更好的可維護性,更少的WTFery)......SELECT MIN(`field`)FROM `tbl`;SELECT `field`FROM `tbl`ORDER BY `field`LIMIT 1;
查看完整描述

3 回答

?
MMTTMM

TA貢獻1869條經(jīng)驗 獲得超4個贊

在最糟糕的情況下,如果您正在查看未MIN()編制索引的字段,則使用該表需要單次完整傳遞。使用SORTLIMIT需要一個文件排序。如果針對大型桌面運行,則可能會在性能方面存在顯著差異。作為一個毫無意義的數(shù)據(jù)點,在我的開發(fā)服務(wù)器上占用MIN()了.36秒,SORT然后LIMIT在我的開發(fā)服務(wù)器上的106,000行表中占用了0.84秒。

但是,如果您正在查看索引列,則差異更難以注意到(兩種情況下無意義的數(shù)據(jù)點均為0.00秒)。然而,看看explain的輸出,它看起來MIN()能夠簡單地從索引中獲取最小值('Select tables optimized away'和'NULL'行),SORT而且LIMIT仍然需要對索引執(zhí)行有序遍歷(106,000行)。實際的性能影響可能微不足道。

它似乎MIN()是要走的路 - 在最壞的情況下更快,在最好的情況下無法區(qū)分標準SQL,并且最明確地表達了您想要獲得的價值。正如mson所提到的那樣,似乎使用SORT并且LIMIT可取的唯一情況是,你在編寫一個從任意列中找到頂部或底部N值的一般操作,并且不值得寫出特殊情況操作。


查看完整回答
反對 回復(fù) 2019-08-12
?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

SELECT MIN(`field`)
FROM `tbl`;

僅僅因為它與ANSI兼容。限制1特別適用于MySql,因為TOP是SQL Server。


查看完整回答
反對 回復(fù) 2019-08-12
?
躍然一笑

TA貢獻1826條經(jīng)驗 獲得超6個贊

MIN是優(yōu)選的。

ORDER BY + LIMIT有用的另一個原因是,如果要獲取與MIN列不同的列的值。

例:

SELECT some_other_field, fieldFROM tblORDER BY field
LIMIT 1


查看完整回答
反對 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 1569 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號