问题描述
我知道在 SO 上也有类似的问题,但有些问题已有十年历史,而另一些则没有有用的答案。
我是系统设计领域的新手。我在关系 DBMS 方面有一些经验,我在其中创建了一些小型项目。
“关系与非关系 DBMS”上的每篇文章都指出,由于 ACID 事务、Ref 完整性约束和一致性,关系 DBMS 难以扩展。但另一方面,像亚马逊和金融服务这样的巨头继续使用关系型 DBMS,他们似乎在可扩展性方面没有任何问题。
我只是想从理论上了解关系 DBMS 是否真的难以扩展?如果是,这些公司如何使用它处理 TB 级数据?
谢谢!
解决方法
只要数据是第三范式,并应用适当的索引,应该没有问题。这需要知道要存储哪些数据以及需要如何访问这些数据。
在某种规模下(例如,我有一个每天向 1 个表添加多达 1800 万行的系统),您可能希望有一个流程来将新数据传输到分析数据库(OLAP - 例如 SQL Server 分析数据库),MSAS)。 OLAP 的设计相对容易,但是如果没有一些经验,即使每天保持最新状态的过程也很难设计和管理。对 OLAP 数据库的查询针对报告进行了优化;我不相信我提到的系统的任何查询平均需要 3 秒以上才能完成。