MySQL技巧 做好Limit優化

2021-05-25 00:00:33 字數 1194 閱讀 4752

通常情況下,limit關鍵字可以接受乙個或者兩個數字引數。需要注意的是,這個引數必須是乙個整數常量。如果使用者給定兩個引數,則第乙個引數表示第乙個返回記錄行的偏移量,第二個引數則表示返回記錄行的最大資料。另外需要提醒的是,初始記錄行的偏移量是0,而不是1。不少使用者會在這裡犯錯誤。

建議一:靈活使用limit 0子句

根據limit關鍵字的定義,如果引數為0的話,則其返回的是空記錄。這看起來好像沒有多少的意義。其實不然。在實際工作中,靈活使用這個0引數,能夠給我們帶來很大的收穫。

如現在資料庫工程師想要確認一下某個查詢語句的有效性,如果直接執行這個查詢語句,需要等待其返回的記錄。如果涉及的紀錄數量比較多,或者運算邏輯比較複雜,那麼需要等到比較長的時間。此時就可以在select查詢語句中,使用limit 0子句。只要查詢語句沒有語法上的錯誤,這就可以讓資料庫快速的返回乙個空集合。從而幫助資料庫設計人員迅速的判斷查詢語句的有效性。另外這個空集和中還會返回某個表的各個欄位的資料型別。即通過這個limit 0子句還可以查詢某個表的表結構。

可見靈活應用limir 0子句,確實能夠給我們帶來不小的收益。不過需要注意的是,在某些特定的場合下,這個子句可能不會奏效。如通常情況下,在monitor工作環境中不支援這個limit 0子句。此時結果只會顯示empty set,而不是我們所需要的結果。

建議二:limit與group by結合使用

group by關鍵字主要用來對資料進行分類彙總。不過在分類彙總之前,往往需要對資料先進性排序。而limit語句用來指定顯示的結果數量時,往往也需要涉及到紀錄的分類彙總與排序的問題。如現在乙個學校成績管理系統中,需要對學生的總分進行排序。即先對學生各科成績進行彙總,然後顯示其排名為前50的紀錄。此時就需要同時用到group by子句和limit子句。其實從這個案例中我們也可以看出,這兩個子句相互依賴的特性。正是因為這種特性(經常相互結合使用),為此結合group by子句可以提高limit的查詢效率。

這主要是因為兩者如果一起使用的話,limit關鍵字將不會再重複計算任何不必要的group by的值。換句話說,在某些情況下,group by子句能夠通過順序來讀取鍵或者在鍵上做排序來解決分類彙總時的排序問題,然後再計算摘要直到關鍵字的值的改變為止。如此的話,兩個子句所需要做的一些共同性的工作,只要做一次即可。這就可以從另外一次角度用來提高應用系統的效能。相比先做乙個檢視對資料進行分類彙總的運算,再使用乙個查詢語句來抽取特定數量的記錄,效率就要高一點。因為後者是將兩個子句分開來使用,就無法享受到結合使用所體現的優勢。

mysql做好Limit優化

使用mysql時,往往需要指定返回幾行資料,此時可以使用limit關鍵字來實現這個需求。limit子句可以被用於強制select查詢語句返回指定的記錄數量。通常情況下,limit關鍵字可以接受乙個或者兩個數字引數。需要注意的是,這個引數必須是乙個整數常量。如果使用者給定兩個引數,則第乙個引數表示第乙...

標梵互動教你4個小技巧,做好seo

今天是乙個全方位的資訊時代。無論是獲取資訊,還是購買商品,第一反應都不是出門,而是開啟電腦或手機,利用發達的網際網路來獲取我們想要的東西。對於企業來說,如何讓使用者在無數的網頁中找到他們自己的公司就顯得尤為重要。現在越來越多的企業選擇通過 優化來提公升品牌和產品。它的用途是什麼?因此,通過合理設計 ...

MySQL效能調優技巧

原文 mysql performance tuning tips for the shopping season 翻譯 無阻我飛揚 摘要 針對購物旺季 流量會對資料庫造成的壓力,作者給出了mysql效能調優的一些技巧,這些技巧極具參考價值,通過這些調優,可以有效避免因為流量過大造成伺服器宕機,從而給...