MySQL儲存生成的列與MySQL虛擬生成的列有何不同?


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

磁碟空間方面

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

操作方面

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

計算方面

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

何時使用

對於資料頻繁更改的情況,我們應該考慮使用虛擬列。虛擬列的成本來自不斷讀取表,伺服器每次都必須計算該列的值。另一方面,如果資料建立後不會或很少發生更改,我們應該考慮使用儲存列。

更新於:2020年6月22日

630 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.