以下哪项属于 OceanBase 中虚拟列的典型应用场景?()
A. 存储大文件二进制数据
B. 基于已有列表达式动态生成字段值
C. 作为分区表唯一的分区键
D. 替代主键实现唯一性约束
1 个赞
大佬们
1 个赞
正确答案是:B. 基于已有列表达式动态生成字段值
解析:
在 OceanBase 中,虚拟列(Virtual Column)的值并不实际存储在磁盘上,而是根据表中其他列的表达式在查询时动态计算生成的2。其典型的应用场景包括:
-
B. 基于已有列表达式动态生成字段值(正确) :这是虚拟列的核心定义。例如,可以通过
GENERATED ALWAYS AS (SUBSTR(C1, 1, 2))这样的表达式,基于现有列动态生成新的字段2。 - 为 JSON 字段创建索引(正确) :JSON 列本身不支持直接创建索引。通过创建虚拟列提取 JSON 中的特定字段,再针对该虚拟列创建索引,可以显著提升 JSON 数据的查询性能1。
其他选项分析:
- A. 存储大文件二进制数据(错误) :虚拟列的值是动态计算的,不占用实际存储空间,因此不能用来存储大文件二进制数据。
- C. 作为分区表唯一的分区键(错误) :在 OceanBase 中,虚拟列不能作为分区键。
- D. 替代主键实现唯一性约束(错误) :虽然可以在虚拟列上定义行内约束,但虚拟列通常用于辅助查询和索引,而不是用来替代主键实现唯一性约束。