1. 程式人生 > >快閃記憶體資料庫查詢優化

快閃記憶體資料庫查詢優化

在關係型資料庫中,會涉及到大量的查詢操作,查詢操作往往還涉及不同表之間的連線操作,而連線操作需要大量的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、總結

由於在資料庫中,多個表之間會有連線操作,資料庫的查詢操作也會涉及到連線操作,不同的連線操作的演算法對應不一樣的效能,連線操作的演算法也比較麻煩,這裡不總結了,連線操作優化的目的也是利用快閃記憶體的隨機讀的效能,儘量減少讀操作的次數。 在這裡插入圖片描述