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... 语句,效率更高;

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