MySQL 存储生成的列与 MySQL 虚拟生成的列有什么区别?
以下是 MySQL 存储生成的列和 MySQL 虚拟生成的列之间的一些基本区别:
磁盘空间方面
如果从磁盘空间的角度来看,虚拟生成的列不会占用任何磁盘空间。另一方面,存储生成的列会占用磁盘空间。
操作方面
如果从操作的角度来看,虚拟生成的列是就地操作,这意味着表定义已更改,无需重新复制所有数据。另一方面,存储生成的列是复制操作,其成本与向表添加新列相同。
计算方面
在虚拟生成的列中,值是在读取操作期间和 BEFORE 触发器期间动态计算的。另一方面,在存储生成的列中,值在每个 INSERT 和 UPDATE 语句中都会更新。
何时使用
对于数据发生大量更改的情况,我们应该考虑使用虚拟列。虚拟列的成本来自不断读取表,并且服务器每次都必须计算该列的值。另一方面,对于创建后数据不会发生重大变化或根本不发生变化的情况,我们应该考虑使用存储列。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP