像 stackoverflow 这样的高流量网站的数据库设计和规范化的最佳实践是什么?
应该使用规范化数据库来保存记录还是使用规范化技术或两者的组合?
设计一个规范化数据库作为记录保存的主数据库以减少冗余,同时维护另一个非规范化形式的数据库用于快速搜索是否明智?
or
主数据库是否应该非规范化,但在应用程序级别使用规范化视图以实现快速数据库操作?
或者其他一些方法?
加入对性能的影响经常被高估。 Oracle 等数据库产品旨在非常高效地连接。当真正的罪魁祸首是糟糕的数据模型或糟糕的索引策略时,连接通常被认为表现不佳。人们还忘记了非规范化数据库在插入或更新数据时表现非常糟糕。
要记住的关键是您正在构建的应用程序的类型。大多数著名网站与常规企业应用程序不同。这就是为什么 Google、Facebook 等不使用关系数据库。最近关于这个话题的讨论很多我在博客上写过 http://radiofreetooting.blogspot.com/2009/07/no-sql-so-what.html.
因此,如果您正在构建一个主要用于提供大量半结构化内容的网站,您可能不希望使用关系数据库(无论是非规范化数据库还是其他数据库)。但是,如果您正在构建一个高度交易性的网站(例如在线银行),您需要一种能够保证数据安全性和完整性的设计,并且做得很好。这意味着至少是第三范式的关系数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)