Questions tagged «nosql»

提出SQL(关系)数据库替代解决方案的数据库,可以面向文档,键/值,图,对象,...



4
为什么NoSQL数据库比SQL更可伸缩?
最近,我读了很多有关noSQL DBMS的文章。我了解CAP定理,ACID规则,BASE规则和基本理论。但是没有找到关于为什么NoSQL比RDBMS更容易扩展的资源(例如,在需要大量数据库服务器的系统中)吗? 我猜想,保留约束和外键会浪费资源,而在分发DBMS时,它要复杂得多。但是我希望还有更多。 有人可以解释一下noSQL / SQL如何影响可伸缩性吗?
98 sql  nosql  scalability 

8
对于需要按内容搜索的大型数据集,使用NoSQL数据库是否不切实际?
我已经学习NoSQL数据库已有一个星期了。 我真的了解NoSQL数据库的优势以及它们非常适合的许多用例。 但是人们通常会在撰写文章时就好像NoSQL可以代替关系数据库一样。还有一点我无法理解: NoSQL数据库是(通常)键值存储。 当然,可以将所有内容存储到键值存储中(通过将数据编码为JSON,XML等),但是我看到的问题是,在许多情况下,您需要获取一些与特定条件匹配的数据用例。在NoSQL数据库中,只有一个可以有效搜索的条件-密钥。关系数据库经过优化,可以有效地搜索数据行中的任何值。 因此,NoSQL数据库并不是持久存储需要按其内容搜索的数据的真正选择。还是我误会了什么? 一个例子: 您需要存储网上商店的用户数据。 在关系数据库中,您将每个用户存储为users表中的一行,并带有ID,名称,他的国家等。 在NoSQL数据库中,您将以ID为密钥存储每个用户,并将其所有数据(以JSON等编码)存储为值。 因此,如果您需要从某个特定国家/地区获取所有用户(出于某种原因,营销人员需要了解他们的某些信息),那么在Relational Database中这样做很容易,但是在NoSQL Database中却不是很有效,因为您必须获取每个用户,解析所有数据并进行过滤。 我并不是说这是不可能的,但是它变得更加棘手,如果您要搜索NoSQL条目的数据,我想那不是那么有效。 您可以为每个国家/地区创建一个密钥,以存储该国家/地区中每个用户的密钥,并通过获取存放在该国家/地区的密钥中的所有密钥来获取特定国家/地区的用户。但是我认为这种技术使复杂的数据集变得更加复杂-难以实现且不如查询SQL数据库有效。因此,我认为这不是您在生产中使用的方式。还是? 我不确定我是否会误解或忽略了一些概念或最佳实践来处理此类用例。也许您可以纠正我的陈述并回答我的问题。

8
为什么NoSQL比SQL快?
最近有人问我: 为什么NoSQL比SQL快? 我不同意这个问题的前提...对于我个人而言这只是胡说八道。通过使用NoSQL而不是SQL,我看不到任何性能提升。也许SQL优于NoSQL,是的,但不是那样。 我是否缺少有关NoSQL的内容?

4
NoSQL有什么开创性的东西吗?[关闭]
我是一个非常扎实的关系数据库专家,并且一路了解第3种范式,欣赏SQL的代数集理论根源,并且可能使(或不与)一颗破碎的心联系起来。 我还没有找到与妻子约会之夜的关系数据库结构,但是我想过与妻子约会之夜的关系数据库项目。 现在,我听到有关NoSQL并对其进行研究。顺其自然,NoSQL是否具有开创性,在数学上是新颖的,还是“嘿,您甚至根本不需要关联地组织数据,这要容易得多”吗? NoSQL是否像数据结构的超级外壳?在我看来,数据最终必须具有要检索的结构,并且检索必须以某种语言来定义。
46 nosql 

2
NoSQL数据库设计的最佳实践
我刚刚开始使用基于NoSQL文档的数据库(MongoDB),并且对设计数据库的最佳实践感到好奇。 我认为体系结构应该与关系数据库不同?我是否仍应针对规范化的数据库? 例如,我有一个特定的用例。 我有一个具有租用历史记录(地址数组)的用户,该数组应该是用户数组还是具有共享密钥的单独集合?
33 design  nosql 

4
您如何决定使用哪种数据库?
我真的不喜欢“ NoSQL”这个名字,因为它不是很具描述性。它告诉我数据库不是什么,我对数据库是什么更感兴趣。我真的认为该类别实际上包含数据库的几个类别。我只是想大致了解每个特定数据库最适合的工作。 我想做出的一些假设(并要求您做出): 假设您有能力雇用任何数量的优秀工程师,这些工程师对已经存在的每种数据库技术都具有同等的经验。 假设您具有支持任何给定数据库(包括可以支持该数据库的可用服务器和系统管理员)的技术基础架构。 假设每个数据库都免费提供最佳支持。 假设您有100%来自管理层的支持。 假设您有无数金钱可以解决这个问题。 现在,我意识到上述假设消除了选择数据库时涉及的许多有效考虑因素,但是我的重点是在纯粹的技术层面上确定哪​​种数据库最适合该工作。因此,考虑到上述假设,问题是:每个数据库(包括SQL和NoSQL)对哪些作业而言是最佳工具,为什么?
31 sql  database  nosql 

2
SQL Server中的NoSQL
这个问题与SQL和NoSQL之间的区别无关。我正在寻找一些目前对我来说实际上毫无意义的理由(可能是由于我缺乏理解或欣赏)。 我们从头开始使用MVC5,Entity Framework 6代码和SQL Server 2008开始了一个新项目。当架构师检查数据库架构时,声明应该删除所有外键和其他此类约束,因为这是“业务逻辑”,并且应该在应用程序代码的业务层中应用。 我的观点是,外键构成数据/引用完整性的一部分,并不能真正模仿业务逻辑。我将业务逻辑视为控制引用什么/何时/如何/为什么应用引用的过程和验证。我可以理解唯一的约束可以说是业务流程,但是对我而言,这只是逻辑的补充,并构成完整性的一部分。 第二个论点是目标是对数据采用NoSQL方法。我发现这确实是不寻常且不合常规的:考虑到使用SQL Server 2008,报告的需要,数据无法扩展到TB级以及缺乏对诸如Mongo,Raven等技术的考虑。 有人遇到过这种情况吗?为什么有人在为参考数据设计的SQL Server中采用NoSQL方法而不想要外键?
28 sql  sql-server  nosql 

6
从SQL迁移到NoSQL会以什么大小的数据受益?
作为关系数据库程序员(大部分时间),我阅读了有关关系数据库如何不扩展以及MongoDB等NoSQL解决方案如何扩展的文章。由于到目前为止我开发的大多数数据库都是中小型的,所以我从来没有遇到过一些索引,查询优化或模式重新设计尚未解决的问题。 我希望看到MySQL会遇到什么样的大小。多少行? (我知道这将取决于应用程序和存储的数据类型。让我知道的一个东西基本上是遗传学数据库,因此将有一个主表,带有3或4个查找表。主表将在其中包含其他内容,例如染色体参考和位置坐标。很可能会查询到染色体上两个药水之间的许多条目,以查看其中存储了什么。

8
您将如何设计具有自定义字段的用户数据库
这个问题是关于我应该如何设计一个数据库,它可以是关系型/ nosql数据库,这取决于什么是更好的解决方案 根据要求,您需要创建一个系统,该系统将包含一个跟踪“公司”和“用户”的数据库。一个用户总是只属于一个公司 用户只能属于一个公司 一个公司可以有很多用户 “公司”表的设计非常简单。公司将具有以下属性/列:(让我们保持简单) ID, COMPANY_NAME, CREATED_ON 第一种情况 简单明了,用户都具有相同的属性,因此可以通过关系样式,用户表轻松完成此操作: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, CREATED_ON 第二种情况 如果不同的公司想要为其用户存储不同的配置文件属性,会发生什么情况。每个公司将具有一组定义的属性,这些属性将应用于该公司的所有用户。 例如: 公司A要存储:LIKE_MOVIE(布尔值),LIKE_MUSIC(布尔值) 公司B要存储:FAV_CUISINE(字符串) 公司C要存储:OWN_DOG(布尔值),DOG_COUNT(整数) 方法1 暴力方式是为用户提供一个单一的架构,并在不属于公司的情况下让其为空: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, LIKE_MOVIE, LIKE_MUSIC, FAV_CUISINE, OWN_DOG, DOG_COUNT, CREATED_ON 这有点麻烦,因为您最终会得到很多NULL,并且用户行的列与它们不相关(即,属于公司A的所有用户的FAV_CUISINE,OWN_DOG,DOG_COUNT的值为NULL) 方法2 第二种方法是拥有“自由格式字段”: ID, COMPANY_ID, FIRST_NAME, LAST_NAME, EMAIL, CUSTOM_1, CUSTOM_2, CUSTOM_3, CREATED_ON 由于您不知道什么是自定义字段,因此这本身就很麻烦,数据类型将无法反映所存储的值(例如,我们将int值存储为VARCHAR)。 方法3 …

5
我们什么时候应该使用MongoDB?
MongoDB是一个NoSQL数据库,我发现它非常易于使用。最近,我不得不开发一个简单的应用程序,该应用程序需要使用HTTP请求收集一些数据并在处理数据后存储一些结果,然后我尝试使用MongoDB。 通过这种经验,我发现使用它比使用传统的关系数据库要好得多,并且由于我是开发人员而不是DBA,因此极大地简化了我的工作。 不过,有时我不确定何时应该使用MongoDB代替传统的关系数据库(如SQL Server或MySQL)。 在那种情况下,何时可以使用MongoDB代替关系数据库?是否有关于MongoDB的重大警告,使其在某些情况下不合适?

3
文档数据库与关系数据库:如何选择?
我是一个SQL专家,但我知道不仅有SQL数据库-大多数是文档数据库。与大多数技术一样,每种技术也各有利弊。 我读过一些文章,但是它们太理论化了。我想要的是两个真实的案例: 从关系数据库到文档数据库的转换带来了改善 从文档数据库到关系数据库的转换带来了改善 改进是指可以制定更好程序的任何事物-更少的开发时间,可扩展性,性能,以及与编程相关的任何事物。需要注意的是2 .:诸如“因为每个人都知道SQL而回退到关系数据库”之类的故事不好

2
SQL Server和Mongo可以一起使用吗?
我们有一个大型的面向新闻的网站,具有很高的网络流量。该体系结构是您经常看到的DB-回购层-服务层-Asp.Net MVC。我们一直看到的问题与读取性能有关。事实证明,从理论上讲,所有这些DDD域对象对于业务规则来说都是很棒的,但是在优化读取性能方面却变得更加艰辛。 作为一种解决方案,我正在考虑(对我们而言)全新的事物:使用noSQL。我想使用noSQL数据库存储在我们网站上显示的数据。我们无法摆脱我们的SQL Server(至少不会很快),但是在我看来,一个实际可行的步骤是将Mongo用作所有新开发的查询数据库。 我的问题是,它是否可以使用SQL Server作为您的记录和蒙戈作为查询数据库的数据库一起? 因此,当我们的一位编辑者更新记录时,数据将存储在SQL Server中。这是必要的,因为有太多的遗留代码无法在一夜之间重写。 但是,当网站上的查看者查看文章或文章列表时,我想利用Mongo与SQL Server的性能。为了使数据保持最新状态(例如15分钟或更短),SQL Server数据将需要刷新Mongo。RDBMS具有用于此类操作的复制工具,我想知道是否存在从SQL Server到Mongo的相同操作。Lync服务器,也许吗?
14 sql-server  nosql  cqrs  mongo 

3
何时在mysql上使用诸如mongodb之类的nosql数据库?
我是nosql数据库的新手,并且从未使用过它。根据我已阅读的内容和所了解的一点点内容,如果没有外键的概念,如果您不能在数据之间进行引用,我仍然看不到它们如何特别有用。 例如,如何查询“查找此用户发布的所有评论”,“查找属于相册实体的所有照片”等简单信息。 Nosql系统是否远离静态关系数据模型,但仍然让您跟踪此类引用,是否有与外键类似的东西可以在查询中使用?
13 mysql  nosql 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.