MYSQL中limit不適用的場景

2021-09-18 01:30:48 字數 1521 閱讀 3931

[1]在特殊情況下使用limit和不用limit的區別

1.查得到結果的情況

2.查不到結果的情況

這是我今天在刷leetcode上的一道題時遇到的乙個問題。原題位址如下:

176. second highest salary

一開始我給出的答案是:

1select salary as secondhighestsalary from  employee order by salary desc limit 1,1;
這時候怎麼也通不過去,然後我就換了乙個思路,用以下方法解決這個問題,**如下:

1select max(salary) as secondhighestsalary from employee where salary
這會既然很快就通過了,具體原因不明。於是我又在自己的虛擬機器上建表重新執行了一下。結果如下:

我自己虛擬機器中的資料庫的資料

有limit的查詢

沒有limit的查詢

由上面的查詢結果可知,上面的兩種方式都可以得到相同的結果。接下來我又把多餘的兩條資料刪除掉這樣就只剩下一條資料了。

刪除資料

然後再進行上面的兩種查詢得到如下結果:

1. select salary as secondhighestsalary from  employee order by salary desc limit 1,1;
有limit的查詢

沒有limit的查詢

至此,我才知道了,為什麼第一種方法在leetcode上不能通過,而第二者可以。具體是因為什麼導致這樣的結果,我還沒搞明白。如果有那位大佬知道深層的原理,歡迎替我解惑。

由上面的查詢結果可知,

mysql使用(不適用)索引

表的主關鍵字 表的字段唯一約束 直接條件查詢的字段 查詢中與其它表關聯的字段 查詢中排序的字段 查詢中統計或分組統計的字段 不建或少建索引 表記錄太少 採用索引去訪問記錄的話,首先需訪問索引表,再通過索引表訪問資料表,一般索引表與資料表不在同乙個資料塊,這種情況下至少要往返讀取資料塊兩次,而不用索引...

Memcached不適用的場景

b 為什麼不使用memcached b 為什麼你不應該使用memcached?更新於2010年2月4日 dorma.gmail.com memcached好極了!但不是在任何情況下都好.b 1 memcached不是用來儲存大 或流式二進位制塊的。b 你可以考慮其他的解決方案,如 url b 2 你...

mongodb適用和不適用的應用場景

近期考慮把訂單歷史資料從oracle資料庫遷移到nosql資料庫做歷史資料查詢和分析,一天千萬級資料。打算使用mongodb資料庫。使用nodejs做查詢和統計api,對併發請求量要求低,不知道有沒有前輩這樣玩過。我們如今僅僅用mongodo儲存日誌資料,做應用故障分析用。假設有前輩做個類似的歷史庫...