【问题标题】:Very complex database architecture, how to deal with it? [closed]非常复杂的数据库架构,如何处理? [关闭]
【发布时间】:2011-05-09 20:21:56
【问题描述】:

我曾开发过几个 Rails 应用程序,现在我从数据库方面开始开发一个非常复杂的应用程序。很多嵌套模型,几个多态关联......

您如何处理这种复杂性?我怎么知道我们正朝着好的方向努力?性能问题呢?

感谢您的意见。

【问题讨论】:

  • 更多信息会有所帮助。你能举例说明你想到的一些事情吗?是否正在使用 Postgresql 的对象关系功能,或者仅仅是因为它是免费的?等
  • 很多数据类型,很多数据,很多文件,很多域名,很多路由......在同一个应用程序中。 postgresql 的使用没有什么特别之处,只是因为它免费且快速。

标签: sql ruby-on-rails ruby-on-rails-3 postgresql


【解决方案1】:

首先,您需要估计应用程序对数据库运行的查询的性能。然后您可以尝试优化查询,例如,通过添加一些索引。也许在某些情况下,您还需要考虑对某些数据进行非规范化以获得更好的性能。

查询的性能也可能取决于您的数据大小。如果您有非常大的数据集并且查询是最佳的,那么您可以考虑引入(分布式)缓存。或者,如果数据模型允许考虑在多个节点上对数据库进行分区以提高查询性能。

但第一步还是应该设置一些 SQL 查询性能监控。

【讨论】:

    【解决方案2】:

    您应该考虑使用 NOSQL 解决方案,例如 MongoDB 或 CouchDB。有时,RDBMS 并不是适合这项工作的工具。

    http://www.mongodb.org/

    http://couchdb.apache.org/

    【讨论】:

    • 为什么?我觉得编码会更难。
    • 如果你有很多多态性,你最终可能会得到更多的表。 MongoDB 让您存储和搜索 JSON 对象。在这种情况下,您不需要在每个“行”中拥有相同的“列”,并且可以轻松嵌入对象(就像在 JSON 中所做的那样)。最重要的是,还有一些库使其变得简单,例如 Mongoid 和 mongomapper。
    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2020-05-24
    相关资源
    最近更新 更多