小编jes*_*ick的帖子

对于一台机器上的结构化数据,NoSQL over RDBMS是否有任何真正的优势?

所以我一直在努力弄清楚NoSQL是否真的在自动分片和处理UNSTRUCTURED数据之外带来了那么多的价值.

假设我可以将STRUCTURED数据放在一台机器上,或者为SQL提供有效的"自动分片"功能,那么NoSQL选项有哪些优势呢?我已经确定了以下内容:

  1. 基于文档(MongoDB,Couchbase等) - 除了"自动分片"功能之外,我很难理解其中的好处.链接对象与SQL连接非常相似,而嵌入对象显着膨胀文档大小并导致复制的挑战(注释可能同时属于帖子和用户,因此数据将是多余的).此外,ACID和交易的损失是一个很大的缺点.

  2. 基于键值(Redis,Memcached等) - 提供不同的用例,非常适合缓存但不是复杂的查询

  3. Columnar(Cassandra,HBase等) - 这里的最大优势似乎是数据如何存储在磁盘上,并且主要用于聚合而不是一般用途

  4. 图(Neo4j的,OrientDB等) -最引人注目的地方,同时使用边沿和节点使一个有趣的价值主张,但对于高度复杂的关系数据,而不是一般用途最有用.

我可以看到Key-value,Columnar和Graph DB对于特定用例(缓存,社交网络关系映射,聚合)的优势,但是看不出任何理由使用像MongoDB这样的结构数据之外的'自动 - 分割'能力.

如果SQL具有类似的"自动分片"能力,那么SQL对于结构化数据来说是不是很明智吗?在我看来会是这样,但我希望社区的意见......

注意:这与典型的CRUD应用程序有关,如社交网络,电子商务网站,CMS等.

sql database scalability sharding nosql

30
推荐指数
2
解决办法
1万
查看次数

标签 统计

database ×1

nosql ×1

scalability ×1

sharding ×1

sql ×1