搜索

首页  >  问答  >  正文

mysql - 千万数据 分页,当偏移量 原来越大时,怎么优化速度

以mysql为例,一般数据量比较大的时候,分页的话,偏移量约大,查询效率越低,

比如有某个帖子有200万评论,每页显示10条,就有20万页, 当取20万页,数据该怎么处理呢,有什么好的方法可以解决这种 需求呢,

实例: 网易音乐,单个歌曲最大评论数有140多万,分页速度处理的很好的,

伊谢尔伦伊谢尔伦2752 天前889

全部回复(2)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:50:01

    第一我相信网易音乐读取数据的方式绝对是使用nosql,去读取数据。
    当然假如你的数据表访问频率不高的话,还是可以直接读取数据库,当然mysql innodb库有个坑爹的弱点,就是你查询页数越大,所以的效果就越小。所以一般我们是通过id去提高查询的效果
    旧的查询用法 limit 100000,10 建议查询用法 where id > 100000 limit 10。这样可以保证到索引的使用。
    当然你可以使用分表的形式,降低单表数据,从而提高查询效率

    回复
    0
  • PHPz

    PHPz2017-05-18 10:50:01

    如果用redis的化应该是将id都存在list中,然后利用redis获得list的某个片段,然后拿片段里的ID到mysql去查询结果。

    当然如果你要加上排序的话就没辙了。

    回复
    0
  • 取消回复