新手问题 Rails 中 100 万级 记录 排序问题

qinfanpeng · 2013年09月21日 · 最后由 hbin 回复于 2013年09月22日 · 2730 次阅读

传统的 Rails 中排序 Model.sort('xxxx'), 应该是先取出数据,然后在内存中进行排序的吧。但是如果一个表中记录条数太多,比如 100 万条,这样排序的话,会对内存造成很大消耗撒。不知各位前辈有高招没?

不是可以建索引嘛

为什么要先取出再排序?数据库自己的排序速度远远超过你用 Ruby 代码写的,把专业的事情交给最专业的模块。

果断使用order

数据存放在 SQL 数据库中的话,ORM 有排序和分批取出,order,offset,limit 就是用来控制这些东西的。

你采用的是巨慢的一种方式... 果断应该把这个工作交给数据库啊

你用 C/C++ 写的数据库去计算多好呀,这么沉重的 CPU 计算交给 Ruby 多划不来呀。

楼主是不是没有表达清楚,这么简单的问题应该不至于吧。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号