【问题标题】:Data/Database Design Patterns?数据/数据库设计模式?
【发布时间】:2010-10-20 16:46:40
【问题描述】:

我想研究更多关于完整数据设计模式的主题。具体来说,是存储、处理、缓存和检索数据的不同技术组合。换句话说,看看在facebook 这样的大型系统中使用了多少组件。

据我所知,我们有 RBMSNoSQL 风格的数据库类别。然而,更多技术(永久数据存储之外)在数据的实际使用中至关重要 - 例如memcached。然而,我找不到太多关于应该用于充分利用所有架构的总体设计模式。

谁有关于whole-package设计模式的文章的链接,这些设计模式可以通过不同的数据库系统组件组合来实现?

这不是 DB 特定最佳实践(如 database normalization)的问题。也不是如何最好地使用certain technology 的问题。

可以使用哪些设计模式来正确混合奇怪的技术,以利用每种技术的优势来设计完整而高效的系统?从缓存到 CRUD,再到扩展,再到数据完整性。

例如,在小型共享主机上,我可以在 SQLite 上运行博客之类的东西,因为它几乎都是读取而没有写入。另一方面,有些项目在低端 VPS 上,我可以使用 MySQL + APC 缓存(毕竟它只是一个服务器)在高读/写上获得惊人的性能。拥有多个 VPS 的 memcached 是冠军!

我也是 MongoDB 和 PostgreSQL 的粉丝。但是,MongoDB 不使用任何形式的 RAM 限制,因此您应该拥有一个单独的服务器。尽管如此,将大型对象存储在 MongoDB 中并将其余重要数据保留在 PostgreSQL 中是双赢的。

但是,这些都是非常基本的设计选择。大型应用程序的设计具有更多抽象性,以促进扩展并减少故障点。

【问题讨论】:

    标签: database design-patterns


    【解决方案1】:

    我的建议是阅读有关 databases 的一般信息,着眼于了解已使用的不同类型的 storage structures

    一旦你有了这个背景,就更容易将当前技术 (NoSQL) 与存储结构(无模式、水平可扩展)相匹配。

    【讨论】:

    • 是的,对软件目标(有很多!)的基本了解非常重要,这样您就不会试图强迫它执行错误的任务。如果项目改变方向并停止按照您开始使用它的方式工作,这是非常危险的!
    • 谢谢。非常感谢。
    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2011-07-25
    相关资源
    最近更新 更多