当前位置:首页 > 天道酬勤 > 正文内容

显卡高性能模式(nosql与rdbms的区别)

张世龙2021年12月20日 15:00天道酬勤870

关系数据库经过几十年的发展,已经非常成熟,但同时也存在不足。

保存的是行记录,不能保存微博的兴趣关系等数据结构。 “感兴趣的人”是用户ID列表,不能使用关系数据库将列表分割为多行,然后构建查询并直接保存列表。

架构扩展不方便的表结构是强约束,业务变更时扩展很麻烦。

如果对大数据场景中I/O高的大数据量表进行统计运算,则I/O会变高。 这是因为,即使只计算某一列,也需要将整行的数据读入内存。

搜索功能弱的全文搜索只能使用Like进行全表扫描,性能非常差。

针对这些不足,产生了不同的NoSQL解决方案。 在某些情况下,它比关系数据库更有优势,但同时也牺牲了某些特性。 因此,不能单方面盲目相信某个方案。 应该把它作为SQL的有利补充。

诺斯QL!=不是=No SQL,而是:

no SQL=不唯一SQL

典型的NoSQL方案分为四类。

K-V存储解决了以Redis为代表的存储数据结构问题。 文档数据库解决了以MongoDB为代表的架构强约束问题。 列数据库解决了以HBASE为代表的大数据中的I/O问题。 全文搜索引擎解决了以电子搜索为代表的全文搜索性能问题。

1. K-V 存储

Redis是典型的,其value是具体的数据结构,包括string、hash、list、set、sorted set、bitmap、hyperloglog,经常被称为数据结构服务。

以list为例:

LPOP key是删除并返回到队列左侧的第一个元素。

因为使用关系数据库很麻烦,所以需要操作。

给各数据赋予位置编号。 不这样的话,就无法判断哪个数据是最初的。 由于数据插入在列表的开头,因此不能使用ID作为位置编号。 搜索最初的数据。 删除最初的数据。 更新所有从第二个开始的数据的位置编号。 Redis的缺点主要在于不支持完成的ACID事务,只能保证隔离性和一致性,不能保证原子性和持久性。

2. 文档数据库

最大的特征是方案,使用前不需要定义字段,读取不存在的字段也不会发生语法错误。

特点:

新字段很简单。 即使未添加字段,也与历史数据兼容,没有错误。 易于存储复杂的数据,使用JSON编写数据比关系数据库方便得多。 例如,在电子商务公司,冰箱和电脑等根据商品的不同属性有很大不同。 虽然这种差别在关系数据库中会造成很大的麻烦,但是使用文档数据库会很有用。

文档数据库的主要缺点:

如果不支持事务,则join操作

3. 列式数据库

关系数据库按行存储,按列存储数据库。

按行存储的好处:

同时读取多列很有效率,一次磁盘操作会将一行数据中的每一列读取到内存中。 可以一次完成对一行多列的写入,保证写入行数据的原子性和一致性。 如果使用列存储,这些列不会一起存储,因此可能会发生多次写入。 在某些情况下,这些好处是不利的。 例如,要计算超重的人的数据,只需要读取体重列进行统计即可,但在线型存储器中,整个数据会被读取到内存中,从而造成浪费。

另一方面,在列存储器中,只需要读取体重列的数据,I/O就会大幅减少。

不仅节省I/O,列存储的压缩率也很高,可以节省存储空间。 普通行数据库的压缩率为3:1到5:1左右,列数据库为8:1到30:1。 这是因为各个列的数据相似度很高。

列存储器的随机写入效率远远低于列存储器,因为在列存储器中,同一行的多个列存储在连续的空间中,而在列存储器中,不同的列存储在不连续的空间中。

在使用离线大数据分析统计方案时,通常使用列存储,因为主要对某些列进行操作,而不需要在写入数据后进行更新。

4. 全文搜索引擎

关系数据库使用索引快速执行查询,但在全文搜索的情况下,索引不足,原因如下:

全文检索的条件可以自由组合,很难满足索引。 全文检索的模糊匹配方式不能满足索引,只能使用like,效率非常低。 假设有一个交友网站。 信息表如下。

励志棒球1 :找在上海玩PHP的哥哥。

需要匹配性别、地点和语言序列。

感人的棒球2 :找北京喜欢旅行的哥哥。 有必要使性别、地点、兴趣的排列一致。

在实际检索中,各种数组的组合非常多,很难支持关系数据库。

全文搜索引擎使用倒排索引技术对单词到文档进行索引。 例如,上述表格信息会创建倒排索引。

因此,它特别适合基于关键字查阅文档内容。

小结

中,介绍了几种典型的NoSQL方案,以及各自的应用场景和特征。 可以根据实际需要进行选择。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/25704.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。