Ruby on rails Rails应用程序中数百万数据行表的分段错误

Ruby on rails Rails应用程序中数百万数据行表的分段错误,ruby-on-rails,ruby-on-rails-3,postgresql,segmentation-fault,Ruby On Rails,Ruby On Rails 3,Postgresql,Segmentation Fault,我正在开发一个rails应用程序,在这个应用程序中,我用400万个数据行填充了一个表。当我尝试在中的视图中显示页面时,不显示任何数据!从服务器日志中,我可以看到错误: /Users/Rakib/.rvm/gems/ruby-1.9.3-p286@rails328/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:607: [BUG] Segmentation fault 最后显

我正在开发一个rails应用程序,在这个应用程序中,我用400万个数据行填充了一个表。当我尝试在中的视图中显示页面时,不显示任何数据!从服务器日志中,我可以看到错误:

/Users/Rakib/.rvm/gems/ruby-1.9.3-p286@rails328/gems/activerecord-3.2.6/lib/active_record/connection_adapters/postgresql_adapter.rb:607: [BUG] Segmentation fault
最后显示以下消息:

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6

我用更少的数据量尝试了同一个表,然后它工作得很好。这是因为单个表中有大量数据吗?我怎样才能解决这个问题?任何形式的帮助或建议都将不胜感激。

您很可能已经没有记忆了

不要一次加载所有数百万行,而是将它们分块加载并复制到目的地,丢弃该块,加载下一个块,然后重复

您可以使用PostgreSQL和。某些客户端库在迭代结果集时可以使用协议级游标;我不知道Ruby的
Pg
gem是否可以


如果您正在使用ActiveRecord,请重新考虑。在批量事务中管理数百万行不是一种明智的方法。如果可能,请使用较低级别的SQL操作。

是否要同时显示所有400万行?是的,因为我需要从该页面获取所有数据行,以便在其他地方使用!我认为您可能需要学习一些SQL,尝试在数据库之外同时处理4e6行是一种很复杂的方法,这会让您度过一段不愉快的时光。你到底想做什么使你认为你需要处理四百万个ActiveRecord对象的数组?你是对的,我将使用sql命令从表中获取所需的数据。实际上,在这个大表中有15000只股票的数据。我将不得不导入这些数据到另一个网站,为1股票将有一个表。因此,我认为,我可以运行sql命令来获取特定股票的数据,并将它们显示给另一个网站。这是可能的,对吗?一个问题是,如何在ruby程序中使用sql获取数据行?使用sequel gem?还是其他更简单的选择?感谢您的回复。您可以在
连接上使用
选择行
连接。选择行(%q{…})。每行{124;行{…}
。将尽可能多的查询逻辑下推到数据库中(尽管Rails有一个荒谬的教条,说永远不要在数据库中放入任何逻辑),然后检查索引并解释输出。是的,我将使用sql获取数据。谢谢你的好主意,+1:-)