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)

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