數據量大時mysql limit查詢優化方法

原文鏈接:https://www.csdn.net/

當網站達到一定的規模時,網站的各種優化是必須要進行的。 而網站的優化中,針對數據庫各種優化是最重點的了。

 mysql數據庫中的查詢語句有關limit語句的優化。 一般limit是用在分頁的程序的分頁上的,當應用數據量夠小時,也許感覺不到limit語句的任何問題,但當查詢數據量達到一定程度時,limit的性能就會急劇下降。 這個是通過大量實例得出來的結論。 對同一張表在不同的地方取10條數據:

1)offset比較小時   代碼示例: select * from user limit 10,10;   這條sql語句多次運行,時間保持在0.0004-0.0005之間。   代碼示例: select * from user where uid >=( select uid from user order by uid limit 10,1 ) limit 10;   這條sql語句多次運行,時間保持在0.0005-0.0006之間,主要是0.0006。 結論:偏移offset較小時,直接使用limit較優。這個顯然是子查詢的原因。 

2)offset大時   代碼示例: select * from user limit 10000,10;   這條sql語句多次運行,時間保持在0.0187左右   代碼示例: select * from user where uid >=( select uid from user order by uid limit 10000,1 ) limit 10; 這條sql語句多次運行,時間保持在0.0061左右,只有前者的1/3。可以預計offset越大,後者越優。 

通過以上對比,得出mysql limit查詢語句優化經驗: 使用limit語句時,當數據量偏移量較小時可以直接使用limit,當數據量偏移量較大時,可以適當的使用子查詢來做相關的性能優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章