爱钻研的贝勒爷 2021-12-20 10:35 采纳率: 0%
浏览 20

mysql 查询效率问题

目前的业务是根据插入时间的倒序查询出视频的观看记录。
目前测试环境:观看记录表有 6千万,正式环境已经破亿,用户有十几万
    select
        字段
        from 观看记录表 t
        inner join 用户表 u on (t.user_id = u.id )
        left join 单位表 d on (u.unit_id = d.id)
        ORDER BY t.create_time DESC
    limit 20
在正式环境,单独查询 20 条数据就要 900秒。关联用户表和单位表是因为还有一些查询条件是关于这两个表的。 目前该有的索引都有
有没有大老指点下,目前这个业务应该怎么优化这个sql
如果把观看记录表更改成子查询,效率飞快,但是用户表和单位表的条件应该怎么加
  select
    字段
  fromselect id from 观看记录表
    ORDER BY t.create_time DESC
    limit 20
) t
inner join 用户表 u on (t.user_id = u.id )
left join 单位表 d on (u.unit_id = d.id)
  • 写回答

1条回答 默认 最新

  • 王胖胖_ 2021-12-20 11:54
    关注

    子查询里不要只查id,把其他字段也查出来不就行了吗?

    评论

报告相同问题?

问题事件

  • 创建了问题 12月20日