社交网络/知识库社区的数据库建议?

tom*_*ato 12 nosql performance database-recommendation scalability

我正在为一个我想在夏天开始的新项目研究各种数据库类型和 DBMS。

我已经在 MySQL 和 postgreSQL 中构建了系统,现在我想扩展我在数据库方面的知识和经验。

我的项目将是一种社交网络/聚合知识的东西。(还没有开发出一个术语来描述它)。

我一直在看:

  • Cassandra(使用自己的查询语言类型);它似乎有利于功能丰富的内容和提供高性能查询执行。但是我不太热衷于它,因为它需要一个 java 环境才能工作,我更愿意与 Oracle 无关。
  • MongoDB(noSQL 类型的 DBMS);强大的可扩展性,但是您将失去已在成熟的 SQL 语言上可用的所有功能,例如业务信息查询。

系统要求:

  • 数据文本、日期、时间、xml、小整数、blob、
  • 结构/行为:规范化 3NF、非实时、关系、可扩展、健壮
  • 环境: unix/linux,无JAVA!,最好在C上运行

我想知道您是否可以指出我应该研究的任何其他数据库系统。

我也看过对象关系数据库,我非常喜欢它们与 PHP 对象(PDO)一起工作的想法,但是它们的性能似乎有点差。

鉴于这里将有 DBA,对您操作过的这些系统的任何反馈都将不胜感激。

谢谢

HLG*_*GEM 6

还要考虑一下,没有理由不能将关系数据库用于某些事情,而不能将 nosql 数据库用于其他事情。


Dan*_*ons 4

你的抽象需求让我尖叫“PostgreSQL”。然而,我认为了解资产阶级的动态是值得的,所以这里列出了您可能想要查看的各种内容。

\n\n

免费的东西

\n\n
    \n
  • CouchDB - 最早的NoSQL数据库之一,强大的map/reduce查询系统,高度分布式和容错。更好的 NoSQL 竞争者之一。
  • \n
  • Hyperdex - 非常新的分布式哈希表,具有搜索功能。
  • \n
  • Riak - 值得尊重的分布式哈希表。
  • \n
\n\n

奇怪的免费东西

\n\n
    \n
  • Metakit - 更像是一个嵌入式数据库,如SQLite,但不是基于 SQL,因此更加程序化。
  • \n
  • FramerD - 很像一个经典的“网络”数据库,非常以指针为中心。也许死了?
  • \n
  • Magma - Smalltalk OODBMS。很酷但没有很好的记录。
  • \n
\n\n

非免费的东西

\n\n
    \n
  • AllegroGraph - RDF(图)数据库,支持 SPARQL。口齿不清的味道。
  • \n
  • Cach\xc3\xa9 - 混合关系/OO 数据库,最初基于 MUMPS (IIRC)。
  • \n
  • 客观性- 最后几个真正大型的 OODB 之一。非常强大、令人印象深刻且昂贵。
  • \n
  • VoltDB - 高度可扩展的关系数据库。支持“大多数”SQL。很新。我想他们也有社区版本。
  • \n
\n\n

结论

\n\n

我没有广泛使用过这些东西。我对它们中的大多数都玩过一点,最后总是回到 PostgreSQL。从您的需求来看,PostgreSQL 唯一不满足的就是可扩展性。另一方面,就我的目的而言,在单个专用数据库计算机上投入 4000 美元的硬件比在这个问题上投入 4000 美元的云节点或低端计算机要容易得多。有多种方法可以使用 PostgreSQL 实现可扩展性,例如使用EnterpriseDB

\n\n

一边玩这些东西很有趣,但当需要将有价值的、不可重复的生产数据放入某些东西时,一堆无聊的属性,如可靠性、稳定性和长期生存能力,最终就会出现问题。前面。

\n\n

为你做思想实验

\n\n

考虑一下这一点。想象一下,您是马克·扎克伯格,您必须选择放弃您的代码库或您的数据。你可以保留所有的开发人员,但你要么必须放弃所有代码\xe2\x80\x94每一行,甚至所有开发人员对他们如何实现所有内容的记忆都消失了\xe2\x80\x94,但你必须保留所有您的用户帐户和所有用户上传的数据等等,或者您可以放弃所有数据。保留所有结构、服务器和配置、设置,但丢失每个数据库中每个表中的每一行。

\n\n

显然,丢失数据会更糟。为什么您的所有用户都会重新生成所有这些数据?想想所有丢失的营销数据,这就是 Facebook 真正赚钱的方式。有大量企业家垂涎于让人们使用他们的 Facebook 克隆\xe2\x80\x94 的机会,现在所有那些被剥夺权利的前 Facebook 用户都会考虑替代方案。另一方面,如果他们丢失了代码库,他们可以重建它,甚至可能比现在更好,但他们可以在很短的时间内在线提供一些东西。哎呀\xe2\x80\x94他们可能会购买别人的Facebook克隆代码库并加载真实数据,但你不能只是复制他们的数据。如果 Facebook 的服务器上仍然保存着每个人的重要数据,那么离开的动机就会低得多。仍然很糟糕,但情况要好得多。令人惊讶的是更少。

\n\n

讽刺的是,在一次异常事故中丢失所有数据比丢失所有代码要容易得多。但对于大多数互联网公司来说,数据就是公司,你最有价值的资产。这是考虑使用传统的、经过时间考验的、老式的、乏味的关系数据库的一个强有力的理由。

\n