where 子句中的 function
1 | SELECT first_name, last_name, phone_number |
虽然 LAST_NAME 已有索引,但是执行计划并没有使用索引,仍然是全表扫描。因为数据库认为函数的计算结果跟传入参数之间并不相关。为了支持该查询,需要新建一个涵盖实际搜索词的索引。
1 | CREATE INDEX emp_up_name |
这种在定义中包含函数或者运算表达式的索引称为基于函数的索引 (function-based index)。建索引时执行相关的计算并把计算结果存到索引中。