辉煌仪奇 2021-09-20 18:39 采纳率: 47.4%
浏览 26
已结题

django 数据库查询耗时太多,怎么解决

我有一个需求,前端需要直接展示后端数据库中的数据,可是一张表有672行数据,一次查询涉及到的数据有7千多行,就算做分页每次给前端返回5条数据还是卡到前端报链接超时,我该如何优化
下面是查询函数主体部分

    while True:
        sqlselect = r'select {} from Flightdata where last = {}'.format(sqlkey, last)
        cur.execute(sqlselect)
        readdata = cur.fetchone()
        if not readdata:
            value = json.dumps({'content': Contentdata, 'last': None})
            redisdb.set(id, value, ex=60 * 60 * 48)
            break
        else:
            value = json.dumps({'content': Contentdata, 'last': last + 1})
            redisdb.set(id, value, ex=60 * 60 * 48)
            id = readdata[0]
            last = readdata[1]
            Contentdata = readdata[2:]

    cur.close()
    conn.close()

while 每次会循环7千次左右,做一轮查询在300秒左右,不知道哪里的问题

  • 写回答

1条回答 默认 最新

  • ACMAIN_CHM 2021-09-21 14:50
    关注

    贴出查询SQL语句,先看一下这个语句本身的开销时间。 7000 多行理论上不会太慢。除非是使用了 没有优化的join

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月12日
  • 修改了问题 9月26日
  • 创建了问题 9月20日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料