軟件 聊天 安全 視頻 瀏覽器 下載 系統 辦公 教學 輸入法
免費 域名 空間 相冊 郵箱 資源 網賺 試用 優惠 工具
教程 設計 三維 學院 辦公 網頁
素材 PSD 矢量 網頁 PPT 動畫
美女 唯美 大生活 美圖 風景 時尚藝
資訊 新聞 專題 熱點
您的位置: 廣信之家 > 網絡學院 > 建站資訊 > 文章正文

優化MySql limit處理大數據量分頁方法與實例詳解

時間:10-26 12:16 來源:廣信之家 整理:廣信小編 我要評論(0)
字號:T|T
內容提要:
  廣信之家就本文中給大家帶來優化MySql limit處理大數據量分頁方法與實例詳解,幫助朋友們參考學習mysql查詢中的limit語句在處理大數量所分頁時的優化方法。Mysql的limit給分頁帶來了很大方便,但數據量一大時,limit的性能就急劇下降。

廣信之家就本文中給大家帶來優化MySql limit處理大數據量分頁方法與實例詳解,幫助朋友們參考學習mysql查詢中的limit語句在處理大數量所分頁時的優化方法。

Mysql的limit給分頁帶來了很大方便,但數據量一大時,limit的性能就急劇下降。
例如,取10條數據:

select * from yanxue8_visit limit 10000,10
select * from yanxue8_visit limit 0,10

這二個sql語句在執行性能上,絕不是一個數量級別的。

關于mysql limit的優化,這里貼出一段文字:
對limit的優化,不是直接使用limit,而是首先獲取到offset的id,然后直接使用limit size來獲取數據。
根據它的數據,明顯要好于直接使用limit。

這里我們使用數據分兩種情況進行測試。(測試環境win2033+p4雙核 (3GHZ) +4G內存 Mysql 5.0.19)

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越大,后者越優。
以后再寫limit語句時要注意了,好好優化下Mysql。
 
據表 collect ( id, title ,info ,vtype) 就這4個字段,其中 title 用定長,info 用text, id
是逐漸,vtype是tinyint,vtype是索引。

這是一個基本的新聞系統的簡單模型。
現在往里面填充數據,填充10萬篇新聞。
最后collect 為 10萬條記錄,數據庫教程表占用硬盤1.6G。OK ,看下面這條sql語句:
select id,title from collect limit 1000,10; 很快;基本上0.01秒就OK。

再來看這條語句:

select id,title from collect limit 90000,10;

從9萬條開始分頁,結果8-9秒完成,性能嚴重的差啊。

可以這樣優化:

select id from collect order by id limit 90000,10; 很快,0.04秒就OK。

使用id主鍵做索引,速度沒得說。

改進后的方法:

select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10; 

 
這條語句依然是用了id做索引的結果。

 

希望通過本文的實例詳解,能幫助朋友們進一步的了解mysql的limit語句在處理大數量的高效率。

    相關閱讀:

    頂一下
    (0)
    0%
    踩一下
    (0)
    0%
    免責申明:以上內容僅代表原創者觀點,其內容未經本站證實,優化MySql limit處理大數據量分頁方法與實例詳解對以上內容的真實性、完整性不作任何保證或承諾,轉載目的在于傳遞更多信息,由此產生的后果與優化MySql limit處理大數據量分頁方法與實例詳解無關;如以上轉載內容不慎侵犯了您的權益,請聯系我們將會及時處理。
    [責任編輯:廣信小編]

    精彩圖文

    登錄 (請登錄發言,并遵守 相關規定)
    如果你對廣信之家有任何意見或建議,請到交流平臺反饋。到留言板反饋
    36选7中奖概率