mysql limit分頁(yè)優(yōu)化詳細(xì)介紹
mysql limit分頁(yè)優(yōu)化
同樣是取10條數(shù)據(jù)
select * from yanxue8_visit limit 10000,10
和
select * from yanxue8_visit limit 0,10
就不是一個(gè)數(shù)量級(jí)別的。
網(wǎng)上也很多關(guān)于limit的五條優(yōu)化準(zhǔn)則,都是翻譯自MySQL手冊(cè),雖然正確但不實(shí)用。今天發(fā)現(xiàn)一篇文章寫(xiě)了些關(guān)于limit優(yōu)化的,很不錯(cuò)。
文中不是直接使用limit,而是首先獲取到offset的id然后直接使用limit size來(lái)獲取數(shù)據(jù)。根據(jù)他的數(shù)據(jù),明顯要好于直接使用limit。這里我具體使用數(shù)據(jù)分兩種情況進(jìn)行測(cè)試。(測(cè)試環(huán)境win2033+p4雙核 (3GHZ) +4G內(nèi)存 MySQL 5.0.19)
1、offset比較小的時(shí)候。
select * from yanxue8_visit limit 10,10
多次運(yùn)行,時(shí)間保持在0.0004-0.0005之間
Select * From yanxue8_visit Where vid >=( Select vid From yanxue8_visit Order By vid limit 10,1 ) limit 10
多次運(yùn)行,時(shí)間保持在0.0005-0.0006之間,主要是0.0006
結(jié)論:偏移offset較小的時(shí)候,直接使用limit較優(yōu)。這個(gè)顯然是子查詢(xún)的原因。
2、offset大的時(shí)候。
select * from yanxue8_visit limit 10000,10
多次運(yùn)行,時(shí)間保持在0.0187左右
Select * From yanxue8_visit Where vid >=( Select vid From yanxue8_visit Order By vid limit 10000,1 ) limit 10
多次運(yùn)行,時(shí)間保持在0.0061左右,只有前者的1/3。可以預(yù)計(jì)offset越大,后者越優(yōu)。
以后要注意改正自己的limit語(yǔ)句,優(yōu)化一下MySQL了
小結(jié):MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁(yè)帶來(lái)了極大的方便,但數(shù)據(jù)量一大的時(shí)候,limit的性能就急劇下降。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- MySQL深度分頁(yè)優(yōu)化的常用策略
- MySQL深分頁(yè)優(yōu)化方式
- mysql超大分頁(yè)優(yōu)化的實(shí)現(xiàn)
- 淺談mysql使用limit分頁(yè)優(yōu)化方案的實(shí)現(xiàn)
- Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧
- MySQL分頁(yè)優(yōu)化
- MySQL中分頁(yè)優(yōu)化的實(shí)例詳解
- 在大數(shù)據(jù)情況下MySQL的一種簡(jiǎn)單分頁(yè)優(yōu)化方法
- mysql 分頁(yè)優(yōu)化解析
- 解決MySQL分頁(yè)優(yōu)化的實(shí)現(xiàn)
相關(guān)文章
CentOS7版本安裝Mysql8.0.20版本數(shù)據(jù)庫(kù)的詳細(xì)教程
這篇文章主要介紹了CentOS7版本安裝Mysql8.0.20版本數(shù)據(jù)庫(kù)的教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Mongodb中關(guān)于GUID的顯示問(wèn)題詳析
這篇文章主要給大家介紹了關(guān)于Mongodb中GUID的顯示問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mongodb具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
MySQL數(shù)據(jù)庫(kù)遷移后無(wú)法啟動(dòng)的問(wèn)題解決
本文主要介紹了MySQL數(shù)據(jù)庫(kù)遷移后無(wú)法啟動(dòng)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>2025-06-06
從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析
這篇文章主要介紹了從云數(shù)據(jù)遷移服務(wù)看MySQL大表抽取模式的原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
MYSQL數(shù)據(jù)表?yè)p壞的原因分析和修復(fù)方法小結(jié)(推薦)
MYSQL數(shù)據(jù)表?yè)p壞的原因分析和修復(fù)方法小結(jié),碰到的朋友可以參考,下面整理一些比較全,希望對(duì)大家有所幫助。2011-01-01
MySQL 虛擬列和虛擬索引的實(shí)現(xiàn)示例
在MySQL 5.7及更高版本中,虛擬列是一個(gè)非常有用的特性,本文主要介紹了MySQL 虛擬列和虛擬索引的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03

