虚拟列
1. 什么是虚拟列
虚拟列(Virtual Column)是根据表中其它列的表达式计算而来的列,不存储实际数据,而是在查询时动态计算。它可以简化查询逻辑,提升数据一致性。
2. 虚拟列的类型
- 虚拟(Virtual):不占用存储空间,查询时计算。
- 持久化(Stored):计算结果存储在表中,查询更快,但占用存储。
3. 创建虚拟列示例
创建带虚拟列的表:
CREATE TABLE employees (
first_name VARCHAR(50),
last_name VARCHAR(50),
full_name VARCHAR(101) AS (CONCAT(first_name, ' ', last_name)) VIRTUAL
);
`
查询时,full_name 自动计算 first_name 和 last_name 的拼接结果。
4. 使用持久化虚拟列
如果查询性能要求高,可以使用 STORED:
CREATE TABLE employees (
first_name VARCHAR(50),
last_name VARCHAR(50),
full_name VARCHAR(101) AS (CONCAT(first_name, ' ', last_name)) STORED
);
5. 注意事项
- 虚拟列不能直接插入或更新,只能通过修改基础列影响其值。
- 支持索引创建,尤其是持久化虚拟列,提高查询效率。
- 适用于计算字段、格式转换、派生数据等场景。
虚拟列是 MariaDB 中强大的功能,能够通过表达式动态生成字段,简化业务逻辑并优化性能。
相关内容
- mariabackup 工具 本节介绍 MariaDB 官方的物理备份工具 mariabackup,包括安装、使用方法和常用参数,帮助实现高效的数据库备份和恢复。
- mysqldump 使用 本节介绍使用 mysqldump 工具备份和恢复 MariaDB 数据库,包括导出数据库、表和数据的常用命令及参数示例。
- 性能监控与配置 本节介绍 MariaDB 性能监控与配置方法,涵盖性能指标监测、参数调优及工具使用,帮助提升数据库稳定性和响应速度。
- 慢查询日志 本节介绍 MariaDB 慢查询日志的配置与使用方法,通过记录执行时间较长的 SQL 语句,帮助定位性能瓶颈,优化数据库查询效率。
- 常规恢复 本节介绍 MariaDB 常规恢复方法,包含从 mysqldump 和 mariabackup 备份文件中恢复数据库的步骤,确保数据安全快速恢复。
- PITR 时间点恢复 本节讲解 MariaDB 利用二进制日志实现时间点恢复(PITR),通过恢复备份及应用日志,精确恢复到指定时间点。