首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是NoSql?NoSql的用途是什么?我在哪里可以获得足够的关于NoSql的资料?

问什么是NoSql?NoSql的用途是什么?我在哪里可以获得足够的关于NoSql的资料?
EN

Stack Overflow用户
提问于 2010-11-11 21:01:32
回答 4查看 8.2K关注 0票数 8

它与Mysql有什么关系?我甚至在搜索书籍和材料,如果有人请提到书名或链接……

我计划学习NoSql...所以,请给我一些建议,在学习之前我们需要做些什么?

有没有人可以清楚地解释一下使用MySql和NoSql之间的区别?

有没有工具可以把MySql数据库迁移到NoSql数据库?如果任何人知道程序或相关资料,请帮助我……

先谢谢你...

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-11 21:18:15

NoSQL是一类不支持SQL (结构化查询语言)的数据库引擎,以实现与SQL的灵活性不兼容的性能或可靠性特征。

这些引擎通常提供一种查询语言,该语言提供SQL功能的子集,以及一些附加功能。SQL的哪个子集是可用的完全取决于引擎,尽管通常不支持JOIN、TRANSACTION、LIMIT和非索引WHERE。

因此,将现有软件从标准的SQL数据库引擎移植到NoSQL引擎将需要重写该软件中的所有查询,并且可能还需要对应用程序逻辑本身进行一些更改(一个典型的例子是,由于缺乏LIMIT x OFFSET y支持,“显示25页中的第11页”不可能在CouchDB中有效地完成)。

维基百科有一个很好的list of NoSQL engines。

关于NoSQL的普遍共识似乎是,如果您的软件的某些特定部分将受益于特定NoSQL引擎所允许的改进的性能、可靠性或可伸缩性,并且不使用该引擎中没有的任何功能,那么可以考虑迁移。将整个现有的由SQL驱动的应用程序的完整性转移到NoSQL上的情况非常少见。

一些NoSQL引擎具有自动从SQL导入功能,但是使用NoSQL会施加一些依赖于您正在对数据执行的操作的体系结构约束,因此,无论现有的导入器是什么,手工编写的从SQL导入过程通常都是唯一的解决方案。

(最后,MySQL与NoSQL没有任何关系。MySQL只是一个关系数据库实现的名称。因为它实现了SQL,所以它当然不是NoSQL数据库。)

票数 14
EN

Stack Overflow用户

发布于 2013-03-08 23:23:23

NoSQL与SQL实际上是一个权衡的问题。

与传统的SQL数据库相比,NoSQL具有优势,因为它们放弃了某些关系型数据库的功能,而获得了其他性能、可扩展性和开发人员可用性的功能。

NoSQL放弃了什么(因NoSQL产品而异):

实体(如表)之间的

  • 关系。因此,您通常不能在查询中将表或模型“联接”在一起。
  • 限制ACID事务。跨一个或多个表/实体的读取一致性和原子写入/提交功能的级别因NoSQL引擎而异。
  • 没有像SQL这样的标准域语言来表达即席查询。每个NoSQL都有自己的应用程序接口,一些NoSQL供应商有有限的即席查询capability.
  • Less结构化和刚性数据模型。NoSQL通常在应用程序层强制/赋予开发人员更多的责任来定义模式--也就是“读取时的模式”,而不是写入时的。

NoSQL获得的好处:

  • 更易于跨群集中共享和分发数据(因为您在上面放弃了这些内容)。这可以提供更高的读/写scalability.
  • Can,部署在更便宜的商用硬件上(和云中),并增加社交能力,更多的economically.
  • Don't需要更多的前期DBA类型的支持。但是,如果您的NoSQL变得很大,您将花费大量时间进行管理工作,因为您有一个更松散的数据模型,因此您可以在文档或名称/值列集中组织更稀疏的数据集和可变的数据集。数据模型不像wired.
  • Schema迁移那样困难,迁移可能会更容易,但会给应用程序层带来负担,以适应您正在构建的应用程序类型上的Data model.
  • Depending的变化。NoSQL可以使入门变得更容易,因为您规划数据模型所需的时间更少。因此,对于收集高速和可变数据,NoSQL可能是很好的选择。但对于企业资源规划应用程序的建模,它可能并不是一个很好的选择。

NoSQL没有银弹,有许多不同的NoSQL引擎,每个引擎都有自己的特点和优缺点。通常,您应该将NoSQL看作是一个补充的数据存储引擎,而不是完全替代RDBMS,但这将取决于您的应用程序和功能环境。

关系数据库也在发展,出现了新的混合NoSQL,如MySQL引擎,以及NuoDB和VoltDB (有些人称之为NewSQL)等产品,它们试图将关系数据库连接到云和分布式体系结构领域。

票数 13
EN

Stack Overflow用户

发布于 2011-08-10 04:48:04

与传统的关系数据库(如MySql)不同,NoSql是一类不同于传统关系数据库的数据库管理系统,它不使用固定表模式存储数据。它的主要目的是作为大型web规模应用程序(Amazon、Google、Facebook等)的数据库系统。它们的性能优于传统的关系数据库。

一个很好的信息来源:NOSQL Databases

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4154635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档