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