今天在后台分页的时候发现打开第一页的速度和最后一页的速度不一样 当打开最后一页的时候时间真是令人发指。 我在想是不是easyUI的原因。
打开浏览器网络发现是查询请求速度慢。
我就去数据库进行了测试。
SELECT * from brand limit 0,20 0.03S
SELECT * from brand limit 100,20 0.028S
SELECT * from brand limit 10000,20 0.046S
SELECT * from brand limit 100000,20 0.23S
SELECT * from brand limit 200000,20 1.79S
SELECT * from brand limit 400000,20 3.1S
发现了消耗性能的地方。
总结:
1)limit语句的查询时间与起始记录的位置成正比
2)mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用。
解决方案:
数据库优化的方式不外乎两张 1.索引 2.分库 分表
那我就拿主键ID试试
select id from brand limit 400000, 20 0.45S 快了不止一点点
组合使用
select * from brand where id>=(select id from brand limit 400000, 1) limit 20 0.136S
可以用了 很舒服