是否有任何 NoSQL 标准出现? [英] Are there any NoSQL standards emerging?

查看:73
本文介绍了是否有任何 NoSQL 标准出现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与大多数新技术一样,一段时间后会出现标准.

NoSQL 有什么好做的吗?

解决方案

NoSQL 的重点在于没有标准的解决方案.每个数据存储问题都是不同的,您需要选择适合特定问题的数据存储技术,而不是标准"的数据存储技术.>

这就是不仅仅是 SQL"的全部前提.

以 ACID 为例(这里有一些您从未想过会在 StackOverflow 上或 1987 年之后的任何地方获得的建议:-)).有很多问题不需要 ACID 保证.对于这些问题,ACID 是矫枉过正.过度杀伤会转化为浪费的 I/O、浪费的 CPU 周期、浪费的性能.这意味着浪费了热量和能源,而这又意味着浪费了电费和水电费.

有些问题只需要这些保证的较弱形式.例如,对于各种 Web 应用程序,所谓的最终一致性就足够了.其他问题需要比 SQL 风格的 ACID 提供的更高保证.

因此,一些 NoSQL 数据库没有 ACID 保证,或者只有较弱的形式.有些可以在每个数据库的基础上打开和关闭它们.有些可以在每个数据库的基础上单独打开和关闭 A、C、I 和 D.有些不仅可以单独打开和关闭 A、C、I 和 D,还可以在滑动范围内对它们进行微调.有些甚至可以在每个查询的基础上做到这一点.

如果您有分层数据,请将其存储在分层数据库中.如果您有图形数据,请将其存储在图形数据库中.如果您有键值数据,请将其存储在键值数据库中.如果您有半结构化文档数据,请将其存储在文档数据库中.如果您有语义 RDF 数据,请将其存储在三元组数据库中.如果构建数据仓库,请将其存储在列数据库中.如果您有关系数据,那么一定要将其存储在关系数据库中.(但如果您实际上拥有关系数据!)

As with most new technologies after a while a standard emerges.

Is there anything cooking for NoSQL?

解决方案

The whole point of NoSQL is that there are no standard solutions. Every data storage problem is different, and you need to choose the data storage technology that is appropriate for your specific problem and not the one that is "the standard".

That's the whole premise of "Not Only SQL".

Take ACID (here's a pieve of advice you never thought you'd get on StackOverflow, or really anywhere after 1987 :-) ), for example. There is a wide array of problems which don't need ACID guarantees. For those problems, ACID is overkill. Overkill that translates into wasted I/O, wasted CPU cycles, wasted performance. Which means wasted heat and wasted energy, which in turn means wasted money on electrical and utility bills.

Some problems only need weaker forms of those guarantees. For example, for a wide array of web applications the so-called eventual consistency is plenty enough. Other problems need higher guarantees than what SQL-style ACID provides.

So, some NoSQL databases don't have ACID guarantees or only have them in a weaker form. Some can turn them on and off on a per-DB basis. Some can turn A, C, I and D on and off individually on a per-DB basis. Some can not only turn A, C, I and D on and off individually, they can finetune them on a sliding scale. Some can even do that on a per-query basis.

If you have hierarchical data, store it in a hierarchical database. If you have graph data, store it in a graph database. If you have key-value data, store it in a key-value database. If you have semi-structured document data, store it in a document database. If you have semantic RDF data, store it in a triple database. If you build a data warehouse, store it in a column database. And if you have relational data, then, by all means store it in a relational database. (But only if you actually have relational data!)

这篇关于是否有任何 NoSQL 标准出现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆