MySQL 千萬數據分頁優化

 附:MySQL 生成千萬測試數據

使用navicat工具,執行分頁查詢效率對比:(時間不是特別精確,但是可以用於參考)

1.使用limit:

SELECT id,val FROM t_test LIMIT 0,50
-- 耗時:0.026s

SELECT id,val FROM t_test LIMIT 5000,5050
-- 耗時:0.046s

SELECT id,val FROM t_test LIMIT 50000,50050
-- 耗時:0.074s

SELECT id,val FROM t_test LIMIT 500000,500050
-- 耗時:0.514s

SELECT id,val FROM t_test LIMIT 5000000,5000050
-- 耗時:4.810s

SELECT id,val FROM t_test LIMIT 9000000,9000050
-- 耗時:3.371s

 2.不使用limit

SELECT id,val FROM t_test where id>=0 and id<=50
-- 耗時:0.024s

SELECT id,val FROM t_test where id>=5000 and id<=5050
-- 耗時:0.024s

SELECT id,val FROM t_test where id>=50000 and id<=50050
-- 耗時:0.024s

SELECT id,val FROM t_test where id>=500000 and id<=500050
-- 耗時:0.025s

SELECT id,val FROM t_test where id>=5000000 and id<=5000050
-- 耗時:0.025s

SELECT id,val FROM t_test where id>=9000000 and id<=9000090
-- 耗時:0.025s

可以得出結論,在表中數據量較大情況下,不建議使用limit,改用BETWEEN ... AND... 語句,效率更高;

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