我有一个RoR应用程序和一个cron rake-task,类似于:
Model.all.each do |m|
if m < some_condition
m.do_something
m.save
end
end
Model有1,000,000条记录(其中有200,000条条件可接受)。有什么方法可以提高任务内存的使用率吗?它占用了on的内存,并且Ruby进程在生产环境中被服务器终止。我的数据库是PostgreSQL。
我得到了相当慢的查询(实际上这是从mysql.dump加载数据)。现在,我想检查一下已经加载了多少行。
select count(*) from my_table;
就数据加载而言,my_table是锁定的,所以在加载转储之前我不能执行这个sql。
Cmd ID State User Host DB Time Query
Query 191 update root localhost rehub 00:09