刘艳兵-DBA043-什么是“虚拟列索引”?
什么是“虚拟列索引”?
A 仅在内存中存在的临时索引
B 基于表中实际不存在的列创建的索引
C 为提高查询性能,基于表列计算表达式创建的索引
D 依赖于外部数据源的索引
答案:C 为提高查询性能,基于表列计算表达式创建的索引
选项分析:
基于表列计算表达式创建
- 虚拟列是由表中的一个或多个现有列通过计算表达式得出的逻辑列,该列在物理上并不实际存储在表中,但可以像普通列一样在查询中使用。而虚拟列索引就是针对这种虚拟列创建的索引。例如,在一个包含 quantity(数量)和 price(价格)列的订单表中,可以创建一个虚拟列 total_price,其计算表达式为 quantity * price,然后基于这个虚拟列创建索引,这样在查询涉及到根据总价格进行条件筛选或排序等操作时,就可以利用虚拟列索引来提高查询效率,所以C选项正确。
并非仅在内存中存在的临时索引
- 虚拟列索引并不是仅存在于内存中的临时索引。它与普通索引一样,会被持久化存储在数据库中,并且在数据库的生命周期内一直存在,直到被删除,所以A选项错误。
基于表中实际不存在的列,但由表列计算得出
- 虽然虚拟列在物理上不存在于表中,但它是由表中的现有列通过计算表达式派生而来的,并非完全脱离表的存在,而B选项表述不够准确完整,所以B选项错误。
不依赖于外部数据源
- 虚拟列索引完全是基于数据库表自身的列和计算表达式创建的,与外部数据源没有关系,所以D选项错误。