mysql 分页 limit 优化
1.语法: *** limit [offset,] rows 一般是用于select语句中用以从结果集中拿出特定的一部分数据。 offset是偏移量,表示需要的数据是跳过多少行数据之后的,可以忽略;rows表示要拿多少行数据。 2,场景: 前台要展示数据库中数据,需要后台实现分页,传入数据要有“页码page”跟“每页数据条数nums”。 select * from t_table order by id limit (page-1)*nums,nums 3.问题: 当一个数据库表过于庞大,LIMIT offset, length中的offset值过大,则SQL查询语句会非常缓慢 select * from t_table order by id limit 10000000,10 上边SQL语句表示从表t_table 中拿数据,跳过10000000行之后,拿10行 4.优化思路: 1.能不能跳过10000000条数据然后读取10条,而不是读取10000010条数据然后返回10条数据。 2.order by字段需要建立索引 改进后的SQL语句如下: select * from t_table where id >= ( select id from t_table order by id limit 10000000,1 ) limit 10 注:假设id是主键索引