gpt4 book ai didi

nosql - 如果 NoSQL 是无模式的,它怎么能适合大规模更新呢?

转载 作者:行者123 更新时间:2023-12-02 02:22:16 25 4
gpt4 key购买 nike

我正在考虑一个问题的模式,其中“人”有一个国家,在 RDBMS 中,我可以制作两个表,一个用于人,另一个用于国家,并制作一个连接两者的键......如果我想更改一个国家的名称然后我只是在“国家”表中更改它并且人们获得了这个新值......但我在想如果我在像 MongoDB 这样的 key /文档中做这个我只需要一个文档“people”,里面会有国家的值(value),比如:

{name:"Tiago",
Country: "Brazil"}

现在,如果我想将所有“Brazil”更改为“BraSil”,我将不得不搜索国家/地区等于“Brazil”的ALL 人,然后更新?所以,它不会比 RDBMS 慢吗???

最佳答案

没有人回答;该技术将取决于引擎;正如您所说,“NoSQL”数据库并非生而平等。

在 CouchDB 中;你(通常)通过 View 访问你所有的数据,你可以很容易地在 View 中改变这样的东西;好的一面是,由于 View 是普通的 JavaScript,您可以很容易地表达任何类型的转换。缺点是 CouchDB 中的所有 View 与 SQL 数据库中的物化 View 基本相同;并且您第一次尝试访问这样的值时,响应将花费重建整个 View 所需的时间;如果要重写的数据很多,那将需要一段时间。

在 AppScale 或 GoogleAppEngine 中,您必须直接更改实体;系统地接触可能庞大的数据集的唯一真正有效的方法是使用任务队列,您将系统地查询与“巴西”匹配的实体,直到它不返回任何行。有时实际查询会返回两个值的混合。

在所有情况下;分布式文档数据库的优势来自于一种假设,即某些类型的操作是计算密集型的;但引擎本身被设计为即使在进行这些类型的操作时仍然可用。这在很大程度上是数据库为满足上限定理而做出的权衡的结果。

关于nosql - 如果 NoSQL 是无模式的,它怎么能适合大规模更新呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com