mysql limit分頁優(yōu)化方法分享
更新時間:2011年04月23日 21:31:46 作者:
MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
同樣是取10條數(shù)據(jù)
select * from yanxue8_visit limit 10000,10 和
select * from yanxue8_visit limit 0,10
就不是一個數(shù)量級別的。
網(wǎng)上也很多關于limit的五條優(yōu)化準則,都是翻譯自MySQL手冊,雖然正確但不實用。今天發(fā)現(xiàn)一篇文章寫了些關于limit優(yōu)化的,很不錯。
文中不是直接使用limit,而是首先獲取到offset的id然后直接使用limit size來獲取數(shù)據(jù)。根據(jù)他的數(shù)據(jù),明顯要好于直接使用limit。這里我具體使用數(shù)據(jù)分兩種情況進行測試。(測試環(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
結論:偏移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??梢灶A計offset越大,后者越優(yōu)。
以后要注意改正自己的limit語句,優(yōu)化一下MySQL了
推薦人評論
MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
select * from yanxue8_visit limit 10000,10 和
select * from yanxue8_visit limit 0,10
就不是一個數(shù)量級別的。
網(wǎng)上也很多關于limit的五條優(yōu)化準則,都是翻譯自MySQL手冊,雖然正確但不實用。今天發(fā)現(xiàn)一篇文章寫了些關于limit優(yōu)化的,很不錯。
文中不是直接使用limit,而是首先獲取到offset的id然后直接使用limit size來獲取數(shù)據(jù)。根據(jù)他的數(shù)據(jù),明顯要好于直接使用limit。這里我具體使用數(shù)據(jù)分兩種情況進行測試。(測試環(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
結論:偏移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??梢灶A計offset越大,后者越優(yōu)。
以后要注意改正自己的limit語句,優(yōu)化一下MySQL了
推薦人評論
MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁帶來了極大的方便,但數(shù)據(jù)量一大的時候,limit的性能就急劇下降。
相關文章
MySQL處理DB讀寫分離數(shù)據(jù)不一致問題的方案
在互聯(lián)網(wǎng)中大型項目中,讀寫分離應該是我們小伙伴經(jīng)常聽說的,這個主要解決大流量請求時,提高系統(tǒng)的吞吐量,本文給大家介紹了MySQL處理DB讀寫分離數(shù)據(jù)不一致問題的方案,需要的朋友可以參考下2024-02-02將 Ghost 從 SQLite3 數(shù)據(jù)庫遷移到 MySQL 數(shù)據(jù)庫
如果網(wǎng)站流量小,直接使用 Ghost 默認的 SQLite 數(shù)據(jù)庫還是很方便的,能夠省去安裝、配置數(shù)據(jù)庫的繁瑣步驟。但是,隨著網(wǎng)站流量的增加, SQLite 就慢慢頂不住了,這時最好的選擇就是使用 MySQL 數(shù)據(jù)庫。2014-07-07MySql中的json_extract函數(shù)處理json字段詳情
這篇文章主要介紹了MySql中的json_extract函數(shù)處理json字段詳情,利用json_extract函數(shù)可以通過key查詢value值的一個介紹展開相關內(nèi)容,需要的小伙伴可以參考一下2022-06-06windows下mysql數(shù)據(jù)庫主從配置教程
這篇文章主要為大家詳細介紹了windows下mysql數(shù)據(jù)庫主從配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05