我想更多地研究完整的数据设计模式.具体而言,存储,处理,缓存和检索数据的不同技术组合.换句话说,看看在facebook等大型系统中使用了多少组件.
据我所知,我们有数据库类别的RBMS和NoSQL风格.但是,许多其他技术(永久数据存储之外)对数据的实际使用至关重要 - 例如memcached.然而,我无法找到应该用于充分利用所有架构的总体设计模式.
有没有人有关于整个包装设计模式的文章的链接,这些模式可以用不同的数据库系统组件混合来完成?
这不是数据库规范化等数据库特定最佳实践的问题.关于如何最好地使用某种技术也不是一个问题.
可以使用哪些设计模式正确地混合奇怪的技术,以利用每个优势来设计完整,高效的系统?从缓存,到CRUD,到扩展,再到数据完整性.
例如,在小型共享主机上,我可以运行像SQLite这样的博客,因为几乎所有读取都没有写入.另一方面,有些项目是低端VPS,我可以使用MySQL + APC缓存(毕竟只有一台服务器),在高读/写时具有惊人的性能.有超过一个VPS memcached是冠军!
我也是MongoDB和PostgreSQL的粉丝.但是,MongoDB不使用任何形式的RAM限制,因此您应该拥有一个单独的服务器.然而,在MongoDB中存储大型对象并将剩余的重要数据留在PostgreSQL上是双赢的.
但是,这些都是非常基本的设计选择.大规模应用程序设计具有更多抽象,以促进扩展和减少故障点.