MySQL儲存生成的列與MySQL虛擬生成的列有何不同?
以下是MySQL儲存生成的列和MySQL虛擬生成的列之間的一些基本區別:
磁碟空間方面
如果從磁碟空間的角度來看,虛擬生成的列不會佔用任何磁碟空間。另一方面,儲存生成的列會佔用磁碟空間。
操作方面
如果從操作的角度來看,虛擬生成的列是就地操作,這意味著無需再次複製所有資料即可更改表定義。另一方面,儲存生成的列是複製操作,其成本與向表中新增新列相同。
計算方面
在虛擬生成的列中,值是在讀取操作期間和BEFORE觸發器中動態計算的。另一方面,在儲存生成的列中,值在每個INSERT和UPDATE語句中都會更新。
何時使用
對於資料頻繁更改的情況,我們應該考慮使用虛擬列。虛擬列的成本來自不斷讀取表,伺服器每次都必須計算該列的值。另一方面,如果資料建立後不會或很少發生更改,我們應該考慮使用儲存列。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP