MySQL 儲存生成的列與 MySQL 虛擬生成的列有什麼區別?


以下是 MySQL 儲存生成的列和 MySQL 虛擬生成的列之間的一些基本區別:

磁碟空間方面

如果從磁碟空間的角度來看,虛擬生成的列不會佔用任何磁碟空間。另一方面,儲存生成的列會佔用磁碟空間。

操作方面

如果從操作的角度來看,虛擬生成的列是就地操作,這意味著表定義已更改,無需重新複製所有資料。另一方面,儲存生成的列是複製操作,其成本與向表新增新列相同。

計算方面

在虛擬生成的列中,值是在讀取操作期間和 BEFORE 觸發器期間動態計算的。另一方面,在儲存生成的列中,值在每個 INSERT 和 UPDATE 語句中都會更新。

何時使用

對於資料發生大量更改的情況,我們應該考慮使用虛擬列。虛擬列的成本來自不斷讀取表,並且伺服器每次都必須計算該列的值。另一方面,對於建立後資料不會發生重大變化或根本不發生變化的情況,我們應該考慮使用儲存列。

更新於: 2020-06-22

628 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.