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