通过join方式实现分页查询加速

本文共有810个字,关键词:

问题:数据量大,分页查询时卡顿,如何解决?

解决:通过join方式,先查询主键,再查询内容

方法:

offset_num = (page - 1) * pagesize
sub_q = select(
    User.id).filter_by(**obj_get).order_by(
    User.id.asc()).offset(
    offset_num).limit(pagesize).subquery()
q = select(
    User.uid, User.username, User.fullname, User.national_id, User.phone, User.email,
    User.gender, User.last_login, User.status, User.create_time,
    User.expire_time).join(sub_q, User.id == sub_q.c.id)
r = await db.execute(q)
return r.all()
SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id

参考:

https://mp.weixin.qq.com/s/3up38eg917s66fmmOvjfdg
https://blog.csdn.net/weixin_40123451/article/details/120903720
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论