【问题标题】:Appengine Datastore Advantages [closed]Appengine 数据存储区优势 [关闭]
【发布时间】:2011-06-11 10:12:58
【问题描述】:

我已经使用了相当多的 sql 数据库,并且可以看到规范化数据库的很多好处,可以加入和搜索以及在其中建立关系。

Google 在 Appengine 的数据存储中拥有的那种“对象数据库”有什么优势?

【问题讨论】:

标签: google-app-engine google-cloud-datastore


【解决方案1】:

GAE 的 BigTable 数据存储不是面向对象的,甚至不是对象关系的。它与 Hashmap 的共同点比与 MySQL 或 Oracle 等标准关系数据库的共同点要多。主要优点是可扩展性和对查询所需时间量的更严格保证(有点像 CPU 时间)。可扩展性来自记录的分布方式,如果您正确设置密钥,那么与这些密钥关联的数据在物理上会更紧密(数据是分布式的,因此不会出现单点故障)。

【讨论】:

  • 那么普通程序员真的感觉不到优势吗?我的意思是,我不担心我的 sql 查询将占用我的博客或小型 php webapp 的时间,尽管它们没有分发,但我会进行备份,我从未失望过。所以看来 GAE 只是限制了我可以用我的数据做的事情。
  • 它确实限制了你可以做的事情,它迫使你做出你通常不会为一个小博客做出的编程选择。另一方面,您在 GAE 上运行的那个小博客将能够处理 Slashdotted,因为您会在不知不觉中将 php 服务器关闭。
【解决方案2】:

与许多 NoSQL 数据库一样Datastore 的主要优势是灵活性,但程序员必须忘记有关传统 SQL 数据库的一切。 see this article in techrepublic.com about NoSQl databases

  1. 数据模型的灵活性。 程序员不必担心将对象模型映射到关系模型,只需将您的实体放在数据存储中。
  2. 对象关系的灵活性。 数据存储支持一个属性的多个值,这让您可以像在面向对象编程中一样建立 1-N 关系;即:插入一个列表作为一个属性的值。

其余的优势/劣势来自 PaaS(平台即服务)模型,这意味着您只需担心编写良好的代码,而 google 关心的是基础架构和可扩展性。 see PaaS in wikipedia

【讨论】:

    【解决方案3】:

    从技术上讲,由于数据存储区与 SDK 捆绑在一起,因此编程要容易得多,而且由于您从同一供应商处获取所有组件,而不是将 RDMS、脚本引擎和主机修补在一起,因此更容易共享源代码和协作。

    在经济上,GAE ha 的成本效益是一个巨大的优势,因为您只需按使用量付费。使用其他服务和其他托管,您可以像订阅者一样付费,而使用 GAE 模型,您可以按配额付费。

    【讨论】:

    • 这并不是我真正想要的——我在考虑编程方面的优势。此外,“从技术上讲”,他们本可以使用 sqlite 之类的东西。您的经济利益与数据存储无关,它通常是 GAE,更重要的是,我发现托管服务会根据您的数据库大小向您收费,并且对所有内容都有按使用量付费的结构。
    【解决方案4】:

    在编程方面,一切都更难。

    优势在于可扩展性、价格和管理。考虑到对于许多 Web 应用程序,编程比管理/扩展/付费更容易,GAE/datastore 非常值得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多