NoSQL概述 非关系型数据库

NoSQL

一、关系型数据库存在的问题

1. 问题现象

购票网站,商城网站等在用户高峰期时服务器存在崩溃的现象

2. 现象特征

(1) 海量用户
(2) 高并发

3. 造成原因

服务器奔溃并不是服务器本身的问题,而是关系型数据库(MySQL等)的局限性

(1) 性能瓶颈

关系型数据库在读写数据时会使用磁盘IO,性能较低

(2) 扩展瓶颈

关系型数据库中表与表之间的关系是十分复杂的,某张表可能通过外键关联了许多张表, 而这些被关联的表可能也会去关联很多张表,这就导致查询数据时需要动用多张表,十分 影响查询效率;并且由于复杂性导致扩展也十分困难

4. 解决思路

(1) 降低磁盘IO次数

NoSQL直接将数据放在内存中,不会放在磁盘中 (默认状态下重启之后数据会消失)

扫描二维码关注公众号,回复: 12258933 查看本文章

(2) 去除数据间关系

NoSQL只存放数据,不存放数据间的关系

二、NoSQL基本介绍

1. 概念

NoSQL即Not-Only SQL,泛指非关系型数据库,作为关系型数据库的补充,如今的系统设计采 用关系型数据库和非关系型数据库结合使用的方式

2. 作用

应对海量用户和海量数据前提下的数据处理问题

3. 特征

(1) 易扩展

NoSQL中不存放数据间的关系,扩展较为容易

(2) 高性能

NoSQL将数据存放在内存中,存取数据的速度较快

(3) 灵活的数据模型

NoSQL无需提前为要存储的数据建立字段,随时可以存储自定义的数据格式

(4) 高可用

4. 常见NoSQL数据库

目前市面上常见的NoSQL产品:redis、memcached、HBase、MongoDB

5. NoSQL数据库的四大分类

(1)KV键值:常见的有redis、memcached
(2)文档型数据库:bson格式比较多,常见的有MongoDB
(3)列存储数据库:分布式文件系统,常见的有HBase
(4)图关系数据库:存放的不是图形,存放的是关系,如朋友圈社交关系,常见的有Neo4J

四者对比:

在这里插入图片描述

三、NoSQL应用场景

以电商系统为例,展示NoSQL起到的作用:

第一类,在电商中基础数据一定要存储起来,比如商品名称,价格,生产厂商,这些都属于基础数 据,这些数据放在关系型数据库(如MySQL)中

第二类,商品的附加信息,比如商品的评价,评价不属于商品本身的属性,这一类数据,放到MongoDB 中,可以加快访问速度

第三类,图片内的信息,这种信息相对来说比较固定,它有专用的存储区,一般用文件系统来存储

第四类,搜索关键字,为了加快搜索速度,会用到像Elasticsearch、Lucene、solr等搜索技术

第五类,热点信息,即访问频度比较高的信息,这类信息的第二特征是具有波段性,换句话说它不 是稳定的,具有时效性,这类信息一般放到redis中进行存储,可以加快存取速度

四、电商系统存储结构设计

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_49343190/article/details/112982203
今日推荐