您现在的位置是:亿华云 > 数据库
NoSQL数据库的5个陷阱
亿华云2025-10-04 04:07:31【数据库】8人已围观
简介我录制了一段视频,讲述了NoSQL数据库的优势。 回应很有趣,但是我给人的印象是,并不是每个人都看到硬币的两面。 事实是它们会给我们带来很多问题。Schema管理每个NoSQL数据库都以其自己的方式处
我录制了一段视频,据库讲述了NoSQL数据库的陷阱优势。 回应很有趣,据库但是陷阱我给人的印象是,并不是据库每个人都看到硬币的两面。 事实是陷阱它们会给我们带来很多问题。
Schema管理
每个NoSQL数据库都以其自己的据库方式处理该模式。 在某些情况下没有Schema(MongoDB),陷阱在某些情况下它是据库动态的(Elasticsearch),在某些情况下它类似于关系数据库中的陷阱Schema(Cassandra)。 在概念模型中,据库数据始终具有Schema。陷阱 实体,据库字段,陷阱名称,据库类型,关系。 不管基础类型如何,物理模型都是概念模型的表示。
NoSQL数据库在架构方面为我们提供了更多自由。 在MongoDB中,云服务器提供商我们可以添加两个具有相同字段名称但类型不同的不同文档。 这有意义吗? 而不是。 这会发生吗? 当然可以。 一个简单的人为错误可能会破坏我们的应用程序。
另一个问题与实体之间的关系有关。 即使数据库中没有关系,我们也必须记录数据之间的关系。 从关系数据库中,我们可以生成ERD图。 如果是NoSQL数据库,则可能无法使用。
使用NoSQL数据库时,我们必须记住有关模式管理和数据验证的问题。 没有它,数据可能会"爆炸"。 有趣的事实:一些公司用PostgreSQL替换了MongoDB。
较低的误差范围
NoSQL数据库的性能是适当的数据建模,索引和分区的结果。 在关系数据库中,源码库我们可以添加列,转换表,将数据从一个表翻转到另一个表,以及如果我们之前忘记了索引,则可以添加索引。 对于NoSQL数据库,并非在所有情况下都可行。 我们可能需要使用一些外部工具,例如Apache Spark,甚至删除并重新创建我们的数据模型。
在Elasticsearch中,如果我们无法获取索引的架构/映射,则必须使用例如 重新索引API,这意味着我们必须将数据重新索引到另一个索引。
在Cassandra中,我们只能按分区键和群集键进行过滤。 如果我们忘记在键中添加一列,则有可能添加索引,但是如果集合的基数很大,则会降低性能。
不支持ACID
ACID属性简化了代码编写。 我们不需要处理与以下事实有关的错误:X表中的数据已经存在,而Y表中的数据尚未存在(如果有的话)。 根据CAP定理,我们知道存在一致的站群服务器数据库和最终一致的数据库。 这种类型最流行的数据库是Apache Cassandra。 最终的一致性要求对数据建模和应用程序逻辑采用不同的方法。 应该以一种更具防御性的方式编写代码,因为不确定您刚刚更改的记录是否可以从应用程序的另一部分获得。 HBase是一致性数据库的一个示例,但是即使Cloudera相信它也不会替代关系数据库。 一些数据库宣称自己是一致的,并且仅在一定程度上确保了一致性。 例如,MongoDB提供事务,但是多文档事务仅自版本4.0起可用。
不支持SQL
NoSQL的缺点是缺少SQL。 我们可能喜欢不喜欢,但SQL是数据的基础。 许多分析师每天都在使用SQL,学习其他语言可能会阻止他们使用数据库。 创建Spark SQL或Beam SQL的原因是有原因的。
分析有限和/或没有Join
这只是关于OLTP和OLAP系统之间差异的讨论。 我们习惯于使用GROUP BY和JOIN子句,但并非每个数据库都会提供此类功能。 由于数据库的性质,聚合和合并可能非常有限(如果可能)。 对于Apache Cassandra,分析功能通常是通过将Apache Spark集群组合在一起来实现的。 您将通过我的故事学习如何将彼此联系起来。
概要
那么值得使用NoSQL吗? 当然是这样。 我们必须记住,创建每个数据库都是为了解决一类问题。 歪曲"命运"是可能的,但会带来后果。 螺丝刀更容易用螺丝刀拧入,用锤子敲钉子和用棍子使墙壁疼痛。
一个有趣的替代方法是NewSQL数据库。 这样的一个例子是CockroachDb和Spanner。 他们解决了传统关系数据库的问题(主要是扩展问题),同时保持了ACID属性。
很赞哦!(2828)
相关文章
- 公司和个人选域名方法一样吗?有什么不同?
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- 如果你的潜在终端必须是这个米(域名),那么潜在终端并不多,也没有硬通货,那么你的域名应该在终端有兴趣购买时出售。否则,你可能得自己留着吃。
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- 4、参加域名拍卖会
- 四、配置网站,填充内容
- 什么是im域名?新手需要了解im域名哪些?
- 3、查看排名
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- 投资各类域名就像到处打游击战,结果处处失败。因为这样,对任何一个中国域名市场的走势和价格都没有准确的把握,所以最好缩小范围,准确把握战场态势,埋伏。
热门文章
站长推荐
公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
记住那句话,域名向来不属于任何人,谁先买就归谁,购买期过后,域名又不再属于任何人。
打开https://www.aizhan.com/输入自己想要查询的域名然后按回车键,如果做过网站都会有数据显示出来
公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
第六:这个圈子里的域名确实是赚钱的一些大玩家,至于小米农,有多少赚钱?几乎没有,也就是说,轿子里只有一个人,而且大多数人都抬着轿子。
主流搜索引擎显示的相关搜索项越多,越能积极反映该域名的市场价值。同时,被评估域名的搜索引擎显示结果不佳可能是由于以下两个原因:
cm域名有什么独特之处?新人要了解cm域名哪些?
2. 不要花大价钱买域名,新手鉴别能力不足,容易投资失误。