它与Mysql有什么关系?我正在搜索书籍和材料,如果有人请提到书籍或链接的标题....
我打算学习NoSql ...所以请向我建议一些提示,我们在学习之前需要做些什么?
任何人都可以解释使用MySql和NoSql之间的明显区别吗?
是否有任何工具可以将MySql数据库迁移到NoSql数据库?如果有人知道程序或相关材料,请帮助我.....
提前致谢...
NoSQL是一类不支持SQL(结构化查询语言)的数据库引擎,以实现与SQL的灵活性不兼容的性能或可靠性功能.
这些引擎通常提供一种查询语言,它提供SQL可以执行的操作的子集,以及一些其他功能.什么子集的SQL可完全取决于发动机,虽然这是相当常见的JOIN
,TRANSACTION
,LIMIT
和非索引WHERE
不支持.
因此,将现有软件从标准SQL数据库引擎移植到NoSQL引擎将需要重写该软件中的所有查询,并且可能还需要对应用程序逻辑本身进行一些更改(典型示例是"显示页面")由于缺乏LIMIT x OFFSET y
支持,在CouchDB中不可能有效地完成"11 of 25" .
维基百科有一个很好的NoSQL引擎列表.
关于NoSQL的普遍共识似乎是,如果您的软件的某些特定部分将受益于特定NoSQL引擎所允许的改进的性能,可靠性或可伸缩性,并且不使用该引擎中不可用的任何功能,那么可能会考虑迁移.将整个现有的SQL驱动的应用程序的完整性移到NoSQL上是相当罕见的.
一些NoSQL引擎具有自动从SQL导入的功能,但是使用NoSQL会产生一些架构约束,这些约束依赖于您对数据的处理,因此手动编写的从SQL导入过程通常是唯一的解决方案,无论现有进口商.
(最后,MySQL与NoSQL没有任何关系.MySQL只是一个关系数据库实现的名称.由于它实现了SQL,它当然不是NoSQL数据库.)
NoSQL
vs SQL
真的是在权衡利弊.
NoSQL优于传统SQL数据库,因为它们放弃了某些RDBMS功能,以获得其他性能,可伸缩性和开发人员可用性功能.
NoSQL放弃了什么(因NoSQL产品而异):
实体之间的关系(如表).因此,您通常无法在查询中将表或模型"连接"在一起.
有限的ACID交易.一个或多个表/实体的读一致性和原子写/提交能力的级别因NoSQL引擎而异.
没有像SQL这样的标准域语言来表达即席查询.每个NoSQL都有自己的API,而NoSQL供应商中的一些具有有限的即席查询功能.
不太结构化和严格的数据模型.NoSQL通常会在应用程序层和开发人员强制/给予更多责任来定义架构 - 也就是"读取架构"而不是写入.
NoSQL获得了什么:
更容易在群集中分片和分发数据(因为您在上面放弃了什么).这可以提供更高的读/写可伸缩性.
可以在更便宜的商品硬件上(以及在云中)部署并更经济地增加社交性.
不需要那么多前期DBA类型的支持.但是如果你的NoSQL变得很大,那么无论如何你都会花很多时间做管理工作.
NoSQL具有更宽松的数据模型,因此您可以在文档或名称/值列集中组织较稀疏的数据集和可变数据集.数据模型并不像硬连线那样.
模式迁移可以更容易,但会给应用程序层带来负担,以适应数据模型的变化.
根据您正在构建的应用程序类型,NoSQL可以使您更容易上手,因为您需要更少的时间来规划数据模型.因此,为了收集高速和可变数据,NoSQL可能很棒.但是对于ERP应用程序的建模,它可能不是那么合适.
NoSQL没有条子子弹有许多不同的NoSQL引擎,每个引擎都有自己独特的特性和优缺点.通常,您应该将NoSQL视为补充数据存储引擎,而不是RDBMS/SQL的完全替代,但这取决于您的应用程序和功能环境.
关系数据库也随着新的混合NoSQL(如MySQL引擎)和NuoDB和VoltDB(有些人称之为NewSQL)等产品试图将RDBMS桥接到云和分布式架构领域而不断发展.