7

显然,BigTable 架构的原因与当您处理 Google 必须处理的大量服务器时难以扩展关系数据库有关。

但从技术上讲,究竟是什么让关系数据库难以扩展?

在大公司的企业数据中心,他们似乎能够成功地做到这一点,所以我想知道为什么不能简单地以更大的数量级做到这一点,以便在谷歌的服务器上进行扩展。

4

3 回答 3

6

当您执行涉及物理分布的关系的查询时,您必须将每个关系的数据拉到一个中心位置。对于大量数据,这显然不能很好地扩展。

一个设置良好的 RDBMS 服务器将在 RAM 中的热页上执行大部分查询,几乎没有物理磁盘或网络 I/O。

如果您受到网络 I/O 的限制,那么关系数据的好处就会减少。

于 2010-01-30T05:41:34.100 回答
3

除了 Mitch 的回答之外,还有另一个方面:Webapps 通常不太适合关系数据库。关系数据库强调规范化 - 从本质上讲,使写入更容易,但读起来更难(就完成的工作而言,不一定对您而言)。这对于 OLAP、即席查询类型的情况非常有效,但对于 web 应用程序来说效果不佳,因为 web 应用程序通常大量加权以支持读取而不是写入。

Bigtable 等非关系型数据库采用的策略正好相反:非规范化,以使读取更容易,但代价是写入成本更高。

于 2010-01-30T14:12:49.990 回答
0

如上所述的主要原因是物理位置和网络 IO。此外,即使是大公司也只处理搜索引擎处理的一小部分数据。

想想标准数据库上的索引,也许是几个字段……搜索引擎需要在大文本字段上进行快速文本搜索。

于 2010-01-30T06:48:52.393 回答