Terminology

“物化”是什麼意思?

  • January 7, 2019

在學習“數據佈局”的過程中,遇到了*“物化”*這個詞,並沒有明確的定義和解釋。什麼是物化,物化有什麼作用?

這個問題與物化視圖無關,也不特定於任何特定的 DBMS。

語境

我從中學習的來源:Jens Dittrich 博士教授的 Youtube 影片:將關係映射到設備

在時間點 9:24,我們有這個術語實現。他說這是一個從物理頁面到儲存設備的過程。

並且此時還有一個問題:既然物理頁也應該屬於主記憶體,那麼如果我們有一個主記憶體數據庫,那麼數據佈局只存在於主記憶體中,會不會有物化的過程呢?

我的影片是關於必須進行的不同映射,以便將關係一直映射到硬體。在實踐中,這些不同的映射和線性化步驟經常被混淆和混淆。這是不幸的,因為為某些映射步驟做出的不同的、通常是硬編碼的決策可能會在以後阻礙查詢性能。有時,對這些映射之一的簡單更改可能會導致全新的產品線(例如“列儲存”、PAX/Parquet)。

在數據庫研究中,術語“物化”表示任何形式的數據儲存,即任何最終在**任何儲存層上實際設置一些字節的操作。**範例包括深拷貝、記憶體分配(不要與 malloc() 混淆)、複製、物化視圖(而不是動態視圖)、管道內物化,以及沿儲存層次結構的任何形式的(部分)副本。

在影片中,我介紹(並簡化)了不同的映射步驟。數據庫中世界的簡化視圖是所有內容最終都儲存到物理頁面中。物理頁是數據庫研究中的一個固定術語。但請確保您了解它只是一種抽象。它是 DBMS 中的儲存單元。在討論某些概念(如查詢處理)時,我們可以放心地忽略這些*物理頁面(目前)發生的情況。*這就是我在影片中 9:26 所做的,因為這不是關於硬體的課程:我說來自物理頁面的數據被具體化到儲存設備。再說一遍:後者是一個更長的故事,例如 ACID 中的因素,特別是“D”,恢復,CC,……

但請注意,物理頁面與****物理記憶體不同,物理頁面映射到主記憶體頁面(幾乎總是由虛擬記憶體提供的虛擬頁面)或映射到其他一些設備,例如硬碟或 SSD。大多數設備也在內部進行了虛擬化,例如,一些 SSD 在內部使用了 RAID 5。

當然,對於虛擬記憶體、快照和不同形式的儲存間接,這個術語有時有點難以理解。有時你相信你會實現,但…

例如,假設您在 unix 中 fork 一個子程序。看起來該過程具有數據的物理副本,對嗎?不,它沒有。只有通過寫時複製,您才會收到物理副本。所以,有時物化和不物化之間的界限會變得模糊。

希望有幫助。

引用自:https://dba.stackexchange.com/questions/225920