【发布时间】:2011-06-11 10:12:58
【问题描述】:
我已经使用了相当多的 sql 数据库,并且可以看到规范化数据库的很多好处,可以加入和搜索以及在其中建立关系。
Google 在 Appengine 的数据存储中拥有的那种“对象数据库”有什么优势?
【问题讨论】:
标签: google-app-engine google-cloud-datastore
我已经使用了相当多的 sql 数据库,并且可以看到规范化数据库的很多好处,可以加入和搜索以及在其中建立关系。
Google 在 Appengine 的数据存储中拥有的那种“对象数据库”有什么优势?
【问题讨论】:
标签: google-app-engine google-cloud-datastore
GAE 的 BigTable 数据存储不是面向对象的,甚至不是对象关系的。它与 Hashmap 的共同点比与 MySQL 或 Oracle 等标准关系数据库的共同点要多。主要优点是可扩展性和对查询所需时间量的更严格保证(有点像 CPU 时间)。可扩展性来自记录的分布方式,如果您正确设置密钥,那么与这些密钥关联的数据在物理上会更紧密(数据是分布式的,因此不会出现单点故障)。
【讨论】:
与许多 NoSQL 数据库一样Datastore 的主要优势是灵活性,但程序员必须忘记有关传统 SQL 数据库的一切。 see this article in techrepublic.com about NoSQl databases
其余的优势/劣势来自 PaaS(平台即服务)模型,这意味着您只需担心编写良好的代码,而 google 关心的是基础架构和可扩展性。 see PaaS in wikipedia
【讨论】:
从技术上讲,由于数据存储区与 SDK 捆绑在一起,因此编程要容易得多,而且由于您从同一供应商处获取所有组件,而不是将 RDMS、脚本引擎和主机修补在一起,因此更容易共享源代码和协作。
在经济上,GAE ha 的成本效益是一个巨大的优势,因为您只需按使用量付费。使用其他服务和其他托管,您可以像订阅者一样付费,而使用 GAE 模型,您可以按配额付费。
【讨论】:
在编程方面,一切都更难。
优势在于可扩展性、价格和管理。考虑到对于许多 Web 应用程序,编程比管理/扩展/付费更容易,GAE/datastore 非常值得。
【讨论】: