mysql limit分頁優(yōu)化詳細(xì)介紹
mysql limit分頁優(yōu)化
同樣是取10條數(shù)據(jù)
select * from yanxue8_visit limit 10000,10
和
select * from yanxue8_visit limit 0,10
就不是一個數(shù)量級別的。
網(wǎng)上也很多關(guān)于limit的五條優(yōu)化準(zhǔn)則,都是翻譯自MySQL手冊,雖然正確但不實用。今天發(fā)現(xiàn)一篇文章寫了些關(guān)于limit優(yōu)化的,很不錯。
文中不是直接使用limit,而是首先獲取到offset的id然后直接使用limit size來獲取數(shù)據(jù)。根據(jù)他的數(shù)據(jù),明顯要好于直接使用limit。這里我具體使用數(shù)據(jù)分兩種情況進(jìn)行測試。(測試環(huán)境win2033+p4雙核 (3GHZ) +4G內(nèi)存 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
結(jié)論:偏移offset較小的時候,直接使用limit較優(yōu)。這個顯然是子查詢的原因。
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。可以預(yù)計offset越大,后者越優(yōu)。
以后要注意改正自己的limit語句,優(yōu)化一下MySQL了
小結(jié):MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
登錄MySQL時出現(xiàn)SSL connection error: unknown
這篇文章主要介紹了登錄MySQL時出現(xiàn)SSL connection error: unknown error number錯誤的解決方法,文中通過圖文結(jié)合的形式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-12-12mysql?子查詢的概述和分類及單行子查詢功能實現(xiàn)
本文詳細(xì)介紹了MySQL的子查詢概念和應(yīng)用,解釋了子查詢是在主查詢中嵌套另一個查詢,包括外查詢和內(nèi)查詢,并從多個角度進(jìn)行分類,文章還深入探討了子查詢的編寫技巧和使用場景,對于學(xué)習(xí)和應(yīng)用MySQL的人來說,這是一篇非常有價值的指南2024-10-10mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)
mysql分區(qū)表使用方法,新增分區(qū)、刪除分區(qū)、分區(qū)的合并、分區(qū)的拆分等使用方法2013-12-12MySQL實現(xiàn)兩張表數(shù)據(jù)的同步
本文將介紹mysql 觸發(fā)器實現(xiàn)兩個表的數(shù)據(jù)同步,需要學(xué)習(xí)MySQL的童鞋可以參考。2016-10-10隨機(jī)生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫
這篇文章主要介紹了隨機(jī)生成八位優(yōu)惠碼并保存至Mysql數(shù)據(jù)庫的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-02-02Ubuntu Server下MySql數(shù)據(jù)庫備份腳本代碼
為了mysql數(shù)據(jù)庫的安全,我們需要定時備份mysql數(shù)據(jù)庫,這里提供下腳本代碼,需要的朋友可以參考下2013-06-06