闪存数据库查询优化

在关系型数据库中,会涉及到大量的查询操作,查询操作往往还涉及不同表之间的连接操作,而连接操作需要大量的IO开销,传统的数据库的查询优化都在顺序IO上优化,到闪存上,闪存的随机读和顺序读性能都很出色,那么面对随机读性能好的优势,在查询和连接索引上,数据库需要进行哪些优化,本章就对这个点进行优化。

1、数据库还有一个很重要的是页面布局的概念

指的是数据库的表中有不同的元组,这些元组的数据是一行一行显示的,但是存储的时候都是许多的元组存放在一个页的形式,在将这个页写入到闪存上,那么这个页中行组是如何组织的,这就是页面布局的概念。

2、传统的按照行存储的页面布局NSM和按照列存储的DSM
基本思想:

在这里插入图片描述
在这里插入图片描述

各自的优缺点

NSM的优点:行组中所有的数据都存在一个页中,当行组内多个属性进行查询操作的时候,只用设计到本个页的读取,性能好
NSM的缺点:在读取数据的时候,需要顺序的扫面每个元组,然后删选出需要的查询属性,当查询属性很少的时候,这个时候会消耗大量的带宽

DSM的优缺点

DSM的优点:支持大量的并发的用户查询,因为只用在特定的页中读取对应的属性即可,IO开销较小,而且对于同属性的数据,可以进行数据压缩,效果也比较好
DSM的缺点:需要存储元组的ID的额外的存储开销,以及执行连接操作时需要大量重构的开销
在这里插入图片描述

具体实现

在这里插入图片描述

3、NSM模型在一个页上的具体存储布局
基本原理

在这里插入图片描述
在这里插入图片描述

4、DSM模型的页内布局

在这里插入图片描述

5、由于行式存储和列式存储都有自己的优劣,那么有没有一种兼有两种优势的存储方案,是有的,就是PAX存储模型
基本思想

在这里插入图片描述
在这里插入图片描述
简单来说,就是在NSM模型的页内,设置多个minipage,minipage就是按照DSM的方式把不同的属性设置在不同的组织方式下。

页内的具体存储模型

在这里插入图片描述
在这里插入图片描述

6、PAX、NSM、DSM的特性的比较

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、PAX存储模型为什么适用于在闪存上

在这里插入图片描述
在这里插入图片描述
简单来说,因为PAX的页内布局方案,由于传统的数据库的存储介质是磁盘,那么磁盘的随机寻址的开销,那么即使在页内的minipage也需要随机寻址,这样寻址的时间可能给磁盘去读另外一个页了,也就是说在PAX在页内跳过无用的minipage时,这时候跳过无用页的大小要大于顺序读在这段时间跳过的无用页,传统的磁盘的随机读性能非常的差,PAX在此上可能并不会有很大的提升优势。

但是闪存的随机读性能非常好,随机寻址的时间也非常的短,PAX模型和闪存的寻址时间相结合,只允许去读查询所需要的那些列,所以保留了NSM的功能,同时也具备了DSM的读效率,一次PAX的页内布局方案在闪存上可行的。

8、总结

由于在数据库中,多个表之间会有连接操作,数据库的查询操作也会涉及到连接操作,不同的连接操作的算法对应不一样的性能,连接操作的算法也比较麻烦,这里不总结了,连接操作优化的目的也是利用闪存的随机读的性能,尽量减少读操作的次数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值