SQL中檢視和物化檢視的區別
任何資料庫的主要組成部分都是它的表,為了使資料訪問自定義,存在檢視的概念,換句話說,藉助表的檢視,我們可以限制任何使用者只能訪問他應該訪問的資料。現在,根據檢視的特性和特徵,我們可以區分檢視和物化檢視。
在本文中,我們將討論SQL中檢視和物化檢視之間重要的區別。但在討論它們的區別之前,讓我們先分別瞭解檢視和物化檢視的基礎知識,以便更好地理解它們之間的區別。
SQL中的檢視
檢視是表的邏輯虛擬副本,透過執行"SELECT 查詢"語句建立。 檢視不會儲存在磁碟上的任何位置。因此,每次需要某些資料時,都必須執行查詢。但是,查詢表示式儲存在磁碟上。
檢視沒有與其相關的儲存/更新成本。檢視採用特定的架構設計,這意味著存在定義檢視的SQL標準。當資料需要不頻繁訪問但頻繁更新時,使用檢視。
SQL中的物化檢視
物化檢視是指其內容已計算並存儲的檢視。物化檢視也是邏輯虛擬表,但在這種情況下,查詢的結果儲存在表或磁碟中。物化檢視的效能優於普通檢視。這是因為資料儲存在磁碟上。
有時,物化檢視也稱為“索引檢視”,因為查詢後建立的表已建立索引,可以更快、更高效地訪問。當需要頻繁訪問資料且表中的資料不頻繁更新時,使用物化檢視。
SQL中檢視和物化檢視的區別
下表突出顯示了檢視和物化檢視之間重要的區別:
關鍵 | 檢視 | 物化檢視 |
---|---|---|
定義 | 從技術上講,表的檢視是由“select 查詢”建立的表的邏輯虛擬副本,但結果不會儲存在磁碟上的任何位置。每當我們需要資料時,都需要執行查詢。因此,使用者始終從原始表中獲取更新或最新的資料。 | 物化檢視也是由“select 查詢”驅動的資料的邏輯虛擬副本,但查詢的結果將儲存在表或磁碟中。 |
儲存 | 在檢視中,查詢表示式的結果元組不會儲存在磁碟上,只有查詢表示式儲存在磁碟上。 | 對於物化檢視,查詢表示式和查詢的結果元組都儲存在磁碟上。 |
查詢執行 | 查詢表示式儲存在磁碟上,而不是其結果,因此每次使用者嘗試從中獲取資料時都會執行查詢表示式,以便使用者每次都能獲得最新的更新值。 | 查詢的結果儲存在磁碟上,因此每次使用者嘗試獲取資料時都不會執行查詢表示式,因此如果資料庫中的資料發生更改,使用者將不會獲得最新的更新值。 |
成本效益 | 由於檢視沒有任何與其相關的儲存成本,因此也沒有任何與其相關的更新成本。 | 物化檢視有與其相關的儲存成本,因此也有與其相關的更新成本。 |
設計 | SQL中的檢視採用固定的架構方法設計,因此存在定義檢視的SQL標準。 | SQL中的物化檢視採用通用的架構方法設計,因此沒有定義它的SQL標準,其功能由某些資料庫系統作為擴充套件提供。 |
用法 | 通常在需要不頻繁訪問資料且表中的資料頻繁更新時使用檢視。 | 通常在需要頻繁訪問資料且表中的資料不頻繁更新時使用物化檢視。 |
結論
SQL中的檢視和物化檢視彼此之間非常不同。當需要不頻繁訪問資料且表中的資料頻繁更新時,使用檢視。相反,當需要頻繁訪問資料且表中的資料不頻繁更新時,使用物化檢視。
廣告