首頁  >  文章  >  資料庫  >  MySQL 儲存的生成列與 MySQL 虛擬產生列有何不同?

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

王林
王林轉載
2023-08-30 23:45:11946瀏覽

MySQL 存储的生成列与 MySQL 虚拟生成列有何不同?

以下是MySQL儲存產生資料列和MySQL虛擬產生資料列之間的一些基本差異:

在磁碟空間方面

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

在操作方面

如果從操作的角度來看,虛擬生成列是原地操作,這表示表定義被更改時不需要重新複製所有資料。另一方面,儲存生成列是複製操作,其成本與向表中新增列的成本相同。

在計算方面

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

何時使用

我們應該考慮在資料中使用虛擬列,其中變化發生的次數相當多。虛擬列的成本來自於不斷讀取表,且伺服器每次都必須計算該列的值。另一方面,我們應該考慮在資料在創建後不會發生顯著或根本不變化的情況下使用儲存列。

以上是MySQL 儲存的生成列與 MySQL 虛擬產生列有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除