【赵渝强老师】什么是NoSQL数据库?

随着大数据技术的兴起,NoSQL数据库得到了广泛的应用。NoSQL的全称是Not Only SQL,中文含义是不仅仅是SQL。它泛指所有的非关系型数据库,即:在NoSQL数据库中存储数据的模型可能不是二维表的行和列。NoSQL数据库不遵循关系型数据库范式的要求,因此在NoSQL数据库中可能会造成数据的冗余。视频讲解如下:

视频讲解如下
【赵渝强老师】什么是NoSQL数据库?

下面介绍几个常见的NoSQL数据库:

Redis

​Redis是基于内存的NoSQL数据库,不论读写操作都是在内存上完成的,完全吊打磁盘数据库的速度。Redis之所以可以使用单线程来处理,其中的一个原因是,内存操作对资源损耗较小,保证了处理的高效性。Redis之所以具体很高的性能主要得益于以下几点:

(1)纯内存操作

一般都是简单的存取操作,线程占用的时间很少,时间的花费主要集中在IO上,所以读取速度快。

(2)采用单线程模型

Redis采用了单线程模型从而保证了每个操作的原子性,也减少了线程的上下文切换和竞争。

(3)使用IO多路复用模型

非阻塞I/O,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,Redis采用自己实现的事件分离器,效率比较高。

(4)高效数据结构

整个 Redis就是一个全局哈希表,它的时间复杂度是o(1),而且为了防止哈希冲突导致链表过长,Redis会执行再哈希操作,扩充哈希桶数量,减少哈希冲突。并且防止一次性重新映射数据过大导致线程阻塞,采用渐进式再哈希。巧妙的将一次性拷贝分摊到多次请求过程后总,避免阻塞。Redis全程使用哈希结构,读取速度快并且对数据存储进行了优化,如压缩表,对短数据进行压缩存储,再如使用有序的数据结构加快读取的速度。可以根据实际存储的数据类型选择不同编码。

MongoDB

MongoDB是基于BSON文档的NoSQL数据库。它是NoSQL中功能最丰富、最像关系型数据库的NoSQL数据库。

MongoDB是一个基于分布式文件存储的NoSQL数据库,由C++语言编写。MongoDB旨在为Web应用程序提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系型数据库和非关系型数据库之间的产品,它是非关系型数据库当中功能最丰富、最像关系型数据库的NoSQL数据库。它所支持的数据结构非常松散,其数据结构是类似JSON的BSON格式数据。因此,MongoDB是一种文档型的NoSQL数据库,因此可以存储比较复杂的数据类型。

Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系型数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

HBase

HBase是Hadoop中基于HDFS之上的列式存储NoSQL数据库。HBase就是大表思想的一个具体实现。它是一个列式存储的NoSQL数据库,适合执行数据的分析和处理。简单来说,就是适合执行查询操作。下图展示了HBase的表结构。

HBase的表由列族组成,比如上图中的的emp和dept都是列族。列族中包含列,创建表的时候必须创建列族,不需要创建列。当执行插入语句插入数据到列族中的时候,需要指定rowkey和具体的列。如果列不存在,HBase会自动创建相应的列,再把数据插入到对应的单元格上。这里的rowkey相当于关系型数据库的主键。但是与主键不同的是,rowkey与关系型数据库类似不允许为空,但是可以重复的。如果rowkey重复了,表示相同的rowkey是同一条记录。

相关推荐
fen_fen4 分钟前
用户信息表建表及批量插入 100 条数据(MySQL/Oracle)
数据库·mysql·oracle
马克Markorg6 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_9 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy9 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道10 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_124987075310 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha10 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_11 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance11 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋11 小时前
【Redis】主从复制
数据库·redis