鱼C论坛

 找回密码
 立即注册
查看: 300|回复: 4

[数据库] 非关系型数据库到底有啥优点呢?请举简单明了的例子来说明为啥不能用关系性

[复制链接]
发表于 2024-5-27 10:52:44 | 显示全部楼层 |阅读模式
5鱼币
非关系型数据库到底有啥优点呢?请举简单明了的1个例子来说明为啥非要用非关系性 而用不了 excel/access/oracle 这些

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-7-10 16:33:26 | 显示全部楼层
非关系型数据库(NoSQL)相比于传统的关系型数据库(如Excel、Access、Oracle等)在多个方面展现出其独特的优势,特别是在处理大规模数据、高并发访问以及需要灵活数据模型的场景下。以下是非关系型数据库的一个主要优点及其简单明了的例子,来说明为何在某些情况下非要用非关系型数据库而不能用Excel/Access/Oracle等。

主要优点:
可扩展性和高性能

非关系型数据库通常设计用于处理海量数据和高并发访问。它们通过分布式存储和可扩展的架构,能够轻松应对数据量的快速增长和访问量的激增,而不会像传统关系型数据库那样遇到性能瓶颈或扩展难题。

例子:
假设你是一家大型电商平台的开发者,该平台每天需要处理数百万笔交易,同时还需要实时分析用户行为、商品热度等数据以支持智能推荐和库存管理。在这种情况下,使用Excel、Access或传统的关系型数据库(如Oracle)可能会遇到以下问题:

性能瓶颈:随着数据量的不断增加,传统的关系型数据库在查询、插入和更新数据时可能会变得非常缓慢,无法满足实时性的要求。
扩展性受限:当数据量增长到一定程度时,关系型数据库的扩展通常需要复杂的配置和高昂的成本,而且很难实现无缝的水平扩展。
数据模型不灵活:电商平台的业务变化非常快,经常需要添加新的数据字段或修改数据模型。传统的关系型数据库在应对这种快速变化时可能会显得笨重和不灵活。
相比之下,使用非关系型数据库(如MongoDB)可以很好地解决这些问题:

高性能:MongoDB等NoSQL数据库通常具有更快的读写速度,能够更好地支持高并发访问和实时数据处理。
可扩展性:NoSQL数据库采用分布式架构,可以轻松地扩展到多个节点上,以应对数据量的快速增长。
灵活的数据模型:NoSQL数据库支持灵活的数据模型,如文档型存储,可以轻松地适应业务变化,无需频繁地修改数据库结构。
因此,在这种大型电商平台的场景下,非关系型数据库因其可扩展性、高性能和灵活的数据模型而成为更合适的选择。而Excel、Access等小型数据库则更适合于数据量较小、业务变化不频繁的场景,如个人或小团队的日常数据管理。Oracle等传统关系型数据库虽然功能强大,但在处理大规模数据和高并发访问时可能会遇到性能瓶颈和扩展性问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 前天 21:26 | 显示全部楼层
就是Not Only SQL,不仅仅是数据库(超越了SQL)
====================================
信息爆炸的时代,SQL需要强大的处理能力并发能力,这时候NoSQL就出来了,NoSQL可以专门对每一种数据类型进行针对的处理以提高它的处理效率
比如常见的redis(远程字典服务),双十一抢单就是先存在redis里边,大概一台8g的redis服务器每秒可以处理10w的数据,然后再交给mq(队列)挨个排队处理来减少高峰的压力,排队执行嘛,不是一窝蜂来了
还有常见的各种热搜啊,都是存在redis里边的,专门针对性处理高峰时期的海量数据,而普通的myql啊,sql server啊oracle啊,压根处理不了这么快(事务啊外键啊啥的更会降低速度,尤其是频繁增删,动态维护索引很消耗时间的,索引是为了加快查询的效率设计的aa)

所以NoSQL,不仅仅是数据库的作用就体现出来了,还是之前的步骤,mq排队列后,挨个处理,然后再慢慢在凌晨压力小的时候写入你说的关系型数据库oracle,mysql来进行持久化
==================
所以这俩都是各司其职,不是有你没我的局面嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 昨天 12:08 | 显示全部楼层
非关系型数据库在诸如电商平台等需要以极高速度查询和写入的时候效率比传统的数据库高得多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 昨天 13:43 | 显示全部楼层
这个我觉得要和关系型数据库结合对比起来理解吧。
非关系型数据库,即  NoSQL数据库是指数据分类存放,但是数据之间没有关联关系的数据库系统
经常应用在电商系统中的秒杀系统   登陆信息   消息通知等。
  比如秒杀系统如果用关系型数据库,数据库的处理是多线程的,就会出现超卖,比如秒杀系统,计划是100件商品,但最终却卖出了300件;NoSQL数据库是单线程的,就不会出现这个问题;关系型数据库对数据的校验有严格的要求,对于数据的存储需要耗费时间和性能;但是非关系型数据库不会,比如对于低价值的朋友圈信息和重要的银行转账数据,前者使用NoSQL就最合适了;

主流的NoSQL数据库
  Redis               用内存保存数据,速度快
  Memcache        用内存保存数据
  MongoDB          硬盘,海量低价值的数据
  Neo4J               硬盘保存数据,复杂的组织关系和人际关系

NoSQL数据库的应用场景
  关系型数据库对字符串的长度有要求,对于新闻内容就适合使用非关系型数据库MongoDB来保存;
  电商抢购促销,需要良好的购物体验,抢购信息保存在Redis中,内存比硬盘要快很多;
  微博上的热点信息,缓存在内存中,使用Redis就可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-27 07:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表