以下哪项属于 OceanBase 中虚拟列的典型应用场景?

以下哪项属于 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. 替代主键实现唯一性约束(错误) :虽然可以在虚拟列上定义行内约束,但虚拟列通常用于辅助查询和索引,而不是用来替代主键实现唯一性约束。