sql一对多查询提高查询速度写法

sql查询:
表1 id,金额,
表2:id,金额明细 表1id

想实现以下效果:
分页 查询表2金额明细合计小于表1的记录

主要查询目前实现的方式如下,
select * from id 金额 form 表1 left join (select 表1id,sum(金额明细) 金额合计 from 表2 group 表1id) t on t.表1id = id where 金额>t.金额合计
但是数据量大起来 这种查询会比较慢,请问各位有什么好的方式


    select a.* from1 a
    left join2 b on a.id = b.表1id
    group by b.表1Id
    HAVING a.金额 > sum(b.金额明细)