Oracle 中前缀索引的替代方案是什么?

Cen*_*ion 1 index oracle feature-comparison

您可以创建索引并定义前缀长度,因此索引将仅存储每个列值的第一个起始符号。在 MySQL 中它看起来像这样:

CREATE INDEX table_idx ON emp(last_name(8));
Run Code Online (Sandbox Code Playgroud)

在 Oracle 中是否有其他方法可以做到这一点?

a_h*_*ame 5

您可以在表达式上创建索引(在 MySQL 中不能这样做):

CREATE INDEX table_idx ON emp(substr(last_name,1,8));
Run Code Online (Sandbox Code Playgroud)

但这不会有任何帮助,除非您也在 where 子句中使用该表达式,例如

where substr(last_name,1,8) = 'foobar'
Run Code Online (Sandbox Code Playgroud)

MySQL 中不索引整个值的索引的用法究竟是什么?