mysql limit分頁一般查多少頁,limit多少才會有效能問題?

來源:互聯網
上載者:User
一般文章分頁都是 limit 20 條資料左右,我不知道為什麼,limit 最大的效能瓶頸在哪裡,最大的值在哪裡,一次性取5000條有沒有問題,10000條呢,到底多少合適,好不好,每次分頁取20條太麻煩了。

一直以來我有一個問題,困惑:

1:什麼時候要分頁,
2:什麼時候要有limit限制,
3:什麼時候可以直接痛快的擷取全部資料

比如餓了麼餐廳頁面,餐廳可能有很多分類,每個分類下面還有很多菜品,那麼這個時候它是直接擷取全部資料嗎,沒有limit限制嗎?

假使分類數量不多,不需要limit可以痛快的全部取出,但是每個分類下面的菜品數量可能有點多(打個比方,我也不知道有多少)那麼取每個下面的菜品時需要使用limit嗎,如果要limit那麼取多少條呢,如果這樣做那麼不是可能會有個“點擊查看更多餐品嗎”,那不要做個AJAX取餘下的資料啊,取餘下的資料該怎麼取呢?

大概概念是這樣,但是我還是很暈,希望大神結合我說的執行個體指點一下困惑,謝謝了!

回複內容:

一般文章分頁都是 limit 20 條資料左右,我不知道為什麼,limit 最大的效能瓶頸在哪裡,最大的值在哪裡,一次性取5000條有沒有問題,10000條呢,到底多少合適,好不好,每次分頁取20條太麻煩了。

一直以來我有一個問題,困惑:

1:什麼時候要分頁,
2:什麼時候要有limit限制,
3:什麼時候可以直接痛快的擷取全部資料

比如餓了麼餐廳頁面,餐廳可能有很多分類,每個分類下面還有很多菜品,那麼這個時候它是直接擷取全部資料嗎,沒有limit限制嗎?

假使分類數量不多,不需要limit可以痛快的全部取出,但是每個分類下面的菜品數量可能有點多(打個比方,我也不知道有多少)那麼取每個下面的菜品時需要使用limit嗎,如果要limit那麼取多少條呢,如果這樣做那麼不是可能會有個“點擊查看更多餐品嗎”,那不要做個AJAX取餘下的資料啊,取餘下的資料該怎麼取呢?

大概概念是這樣,但是我還是很暈,希望大神結合我說的執行個體指點一下困惑,謝謝了!

  1. 什麼時候要分頁?
    當表中資料量大的時候就應該考慮分頁

  2. 什麼時候要有limit限制?
    同上

  3. 什麼時候可以直接痛快的擷取全部資料?
    當表中資料量不大的時候可以一次取所有資料

讀取20條資料和讀取5000條乃至更多的資料,效能上肯定是20條更快的。而且這個快,不光體現在資料庫上,還體現在網路上的傳輸過程中(資料量小傳得當然快),頁面的渲染中(資料量少展示頁面就更快)。另外,即使你一次展示5000條資料,但使用者絕大多數情況下也就能看到二三十條,並不會將5000條全看完,所以多餘的資料也就是浪費的。

如果是小型元素(比如只有文字,或者資訊量較少的元素),單頁量設定在100以下。如果是大型元素(資訊量大,帶圖文一類的),單頁量最好控制在30以下。

夠用就好。取多了浪費。
使用者只看20條,你取21條都多餘。
返回幾百條上千條甚至全部,那影響就大了。
首先資料庫查詢慢,佔用更多的伺服器資源,查出結果後傳輸慢,佔用更多的頻寬資源,其次渲染慢,瀏覽器也會崩潰。

不用想太多了,這個只是產品定下來的而已,通常最多就20~30條,展示多少條完全是看美觀而已。當然,你說的 什麼時候可以直接痛快的擷取全部資料。這個情況是絕對不可能存在的,怎麼可能會擷取全部的資料呢,如果文章量達到了千萬級怎麼辦,這取出來也太久了吧。

分頁20,而為什麼不是5000,10000,主要還是一樓說的,用不到,用不到,用不到那麼多

資料庫一般有個配置可以配置你每次查詢請求返回資料的大小上限,一般情況下,是不會超出這個上限的.只要不超出這個上限,其實怎麼拿都是可以的.但是,一般採用按需擷取原則,你原則上沒有必要拿這麼多就不需要拿這麼多,畢竟拿得多,你對於網卡的頻寬是有佔用的,我舉例,假設你是千M網卡,limit 1W消耗的頻寬是10K,那麼從網卡頻寬的角度來說(先不說資料庫效能問題)你能夠極限的QPS也就是1000M/10K=10W QPS.當然如果你網卡可以上萬兆網卡.另外對於使用者端來說,每次請求擷取更多的資料,實際上也是降低了請求到達的速度.

網路傳輸消耗頻寬
網路傳輸消耗頻寬
網路傳輸消耗頻寬
重要事情說3遍

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.