工作中碰到一个问题,一个表中大概有一亿条数据,使用mysql 的limit(开始位置,查询条数)获取部分数据的时候,当开始位置特别大,查询条数特别少的时候,查询速度特别的慢,有没有老师帮忙出出主意,解答一下。
1 回答

随天马行空
TA贡献8条经验 获得超4个赞
其实limit方法,也是全局查找匹配的,即limit 1000,10,从1000条数据开始,取10条数据,它执行时,也会去查询1000之前的数据,除非有明确的定位,即假设主键id大于某个数,尽量过滤掉之前1000条的数据,
假设排序条件是按id升序(降序),每次都记录最后一条id值,当取1000,10时,也就记录了999条的id,取值时,可加上附加条件id>值(<值),尽量滤掉之前1000条的数据,但这种方法也只是特例,因为排序条件不可以都是按id升序(降序),得对应找能附加条件的情况
尽量对标建联合索引,语句也得满足索引需求,可能会快一些
添加回答
举报
0/150
提交
取消