我对我的rails应用程序中MySQL查询的执行时间有个疑问。使用find_by_sql和我们正常的rails查询方法有什么区别?
我已经写了像
@claims = Claim.joins('left join drugs on claims.ndc = drugs.ndcupchri left join pharmacies on claims.nabp = pharmacies.nabp').select('claims.*, drugs.*, pharmacies.* ').where('claims.member_id = '218').group(:ndc)
查询和我使用的find_by_sql
@sql = "SELECT claims.*, drugs.*, pharmacies.* FROM `claims`
left join drugs on claims.ndc = drugs.ndcupchri
left join pharmacies on claims.nabp = pharmacies.nabp
WHERE (claims.member_id = '218') GROUP BY ndc "
@claims = Claim.find_by_sql(@sql)
有时候,我看到使用的find_by_sql查询的执行时间是相当快时相比,写了相同的查询到另一个。它是否正确。
当涉及到面向性能时,上述哪种模式是更好的接受方法。请分享你的想法。
当前正在使用Rails 3.0.7