【问题标题】:How to handle lots of tables (5.000) in Rails?如何在 Rails 中处理大量表(5.000)?
【发布时间】:2013-07-03 06:56:33
【问题描述】:

我有一个运行 Ruby 2 和 Rails 4 的 Ruby on Rails 应用程序。该应用程序的主要目的是导入和查看来自其他数据库的数据,它做得很好。为此,我为每个导入的表创建 MVC 和路由。但是我遇到了一点性能问题,想知道是否有办法优化它。

例如,我将 5.000 个表导入到我的应用程序中。对于每个表,我需要定义一个路由、一个模型、一个控制器和一个视图。我需要显示、排序、搜索和导出表格中的所有或选定对象。

我现在的工作流程是让 Sidekiq 在后台运行,为每个表构建所有这些 MVC,然后创建一个包含 5000 个路由的路由文件(我有几个)。

主要问题是拥有 25.000 个文件和一个包含 20.000 行代码的路由文件对于保持应用程序的简单和快速并没有真正的帮助。

我想出的另一种方法是为每个表设置一个动态 MVC 和一个控制器方法,并通过以下方式获取数据: ActiveRecord::Base.connection

这将使所有文件、控制器和模型减少一点,但我仍然会有很多路由和视图。而且我还没有找到像现在这样进行搜索、排序和导出的解决方案。

所以,我只是想知道,对于如此大量的桌子,您有什么解决方案。非常感谢任何提示、帮助和开箱即用的想法!

更新以澄清事情:

有 5.000 张桌子是必要的。我的应用程序基本上是一种从数据库、文件或其他任何东西迁移旧数据并将其存储在我的应用程序和连接的 MySQL 数据库中的方法。我在这里谈论的是数百万条记录、一万个字段,以及我无法合并或简化的大量数据,因为我一开始并没有创建数据,但我必须存储它!

【问题讨论】:

  • 听起来您的数据库结构存在重大问题。
  • ...having 25.000 files and a routes file with 20.000 lines of code isn't really helpful in keeping the application simple and fast. - 在您的应用程序中拥有 5000 个表是否简单/快速?
  • 我很想看到这个应用程序的实际应用!
  • 拥有 5.000 个表是必要的。我的应用程序基本上是一种从数据库、文件或其他任何东西迁移旧数据并将其存储在我的应用程序和连接的 MySQL 数据库中的方法。我在这里谈论的是数百万条记录、一万个字段,以及我无法合并或简化的大量数据,因为我一开始并没有创建数据,但我必须存储它!
  • 请不要为此使用 ruby​​ on rails.. 只尝试 Ruby...

标签: ruby-on-rails database-design rails-activerecord rails-routing


【解决方案1】:

有一些 cmets 所以为了分叉讨论我正在添加一个答案。

我的问题是——你真的需要 Rails 吗?从您编写的内容来看,该应用程序仅用于在数据库之间显示(和迁移?)数据。像 MySQL Admin 之类的工具在这里不够用吗?

【讨论】:

  • 好的,我要多解释一下我在做什么。您对一半的应用程序是正确的。我迁移、导入和查看来自不同来源和类型的数据。但除了查看它们之外,我还创建了新的 MVC 组合、链接和合并原始数据。这一切都可以由用户通过网络界面完成。到目前为止,应用程序已经变得相当复杂,如果没有 Rails,我将无法做到这一点,但感谢您花时间阅读和回答我的问题。真的很感激!
  • 好的,这完全改变了项目定义。我正要推荐一个可以与 phpmyadmin 具有类似功能的应用程序,但它没有任何意义。
  • 我想到的另一件事-停止使用activerecord。在大多数情况下,尽管 AR 是一个很好的功能,可以简化/加速开发,但在您的情况下,在 ORM 中“硬编码”模型信息可能会更快,但我不知道 Ruby 是否存在这样的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2010-12-12
  • 2013-04-30
  • 1970-01-01
  • 2013-04-09
  • 2014-06-12
相关资源
最近更新 更多