mysql的優化是非常重要的。其他最常用也最需要優化的就是limit。mysql的limit給分頁帶來了極大的方便,但資料量一大的時候,limit的效能就急劇下降。
同樣是取10條資料
select * from yanxue8_visit limit 10000,10 和
select * from yanxue8_visit limit 0,10
就不是乙個數量級別的。
1、offset比較小的時候。
select * from yanxue8_visit limit 10,10
多次執行,時間保持在0.0004-0.0005之間
select * from yanxue8_visit where vid >=(
select vid from yanxue8_visit order by vid limit 10,1
) limit 10
多次執行,時間保持在0.0005-0.0006之間,主要是0.0006
結論:偏移offset較小的時候,直接使用limit較優。這個顯然是子查詢的原因。
2、offset大的時候。
select * from yanxue8_visit limit 10000,10
多次執行,時間保持在0.0187左右
select * from yanxue8_visit where vid >=(
select vid from yanxue8_visit order by vid limit 10000,1
) limit 10
多次執行,時間保持在0.0061左右,只有前者的1/3。可以預計offset越大,後者越優。
mysql limit分頁 SQL語句模糊查詢
在資料庫中經常要取表中記錄中間的記錄,在sql語句中使用limit 可以實現此功能select from a limit 5,20理解 從表中的第五行資料開始取資料,一共取出20條 這個用法可以實現sql語句分頁,只需要傳進頁數和每條頁數兩個引數即可以實現分頁模糊查詢語句關鍵字一般使用 llike ...
使用Filtered Indexes提高查詢效能
通常我們會遇到這樣的情況,一張表中包含上百萬條的資料,但是每次我們只查詢一小部分的資料。比如一列只有少部分null值,每次我們都需要將null值找出來進行處理。或者我們有狀態標誌位,需要取flag對資料處理。由於資料大部分是重複的,所以對於整個列做索引代價是非常大的,而且對查詢效能提公升可能不大。慶...
Mysql LIMIT如何正確對其進行優化
以下的文章主要是對mysql limit簡單介紹,我們大家都知道limit子句一般是用來限制select語句返回的實際行數。limit取1個或是2個數字引數,如果給定的是2個引數,第乙個指定要返回的第一行的偏移量,第二個指定返回行的最大數目。初始行的偏移 量是0 不是1 mysql select f...