是的是的!我知道!像下面的命令一样在rails中传递SQL是完全错误的,但我保证!:)它仅用于某些基准目的
@medications = TestPharmOrderMain.select("brand_name,form,dose,generic_name as alternative,sum (order_count)
as total_count
,sum(order_cost) as total_cost").group("brand_name,form,dose,generic_name").limit(5)
我在其上运行此REST服务的PostgresQL有两百万行,从这个查询返回JSON需要四分钟,这是不可能针对它开发的。
有没有办法可以更改此查询,例如只查看数据库中的前20行而不是200万行,以便我的开发目的更快地运行?
答案 0 :(得分:2)
如果这是出于开发目的,请做聪明的事情并创建一个代表整个系统的小型数据库。您可以使用create table作为select语句执行此操作:
Create table my_test_table
as
select brand_name,form,dose,generic_name as alternative,sum (order_count)
as total_count
,sum(order_cost) as total_cost
from table
group by brand_name,form,dose,generic_name
limit 5
现在,您可以将测试查询指向my_test_table
,它只会有5条记录,因此速度非常快。
现在你也可以将它偏移到像DBUnit这样的东西,它本质上是一个放在XUnit之上的框架。因此,这可以很容易地集成到您认为是RubyUnit的测试中。