--下面两种写法是一个意思,但是第二钟方法可以用函数索引 [TEST@myorcl] SQL>select * from dual where 'aaa123bbb' like '%123%';D - X[TEST@myorcl] SQL>select * from dual where regexp_like('aaa123bbb','.+123.+');D - Xcreate index index_name on table_name(regexp_like(字段,正则表达式));
create index index_name on table_name(regexp_like(字段,正则表达式)); 这个字段是 varchar2(2000)存的包括中文,字母,符号 这个正则表达式怎么写? 这样的索引会看到明显的效果吗?
把你的 like 条件写全,才能根据你的描述写正则,效率肯定是明显的,但是会存在索引的通病,数据库会有额外维护索引的开销。
也就是说SQl语句中%数值%,是不走索引的,而数值%是走索引的
应根据实际内容进行SQL语句的修改
oracle 建全文索引 就可以。 但不知道再怎么建
[TEST@myorcl] SQL>select * from dual where 'aaa123bbb' like '%123%';D
-
X[TEST@myorcl] SQL>select * from dual where regexp_like('aaa123bbb','.+123.+');D
-
Xcreate index index_name on table_name(regexp_like(字段,正则表达式));
create index index_name on table_name(regexp_like(字段,正则表达式));
这个字段是 varchar2(2000)存的包括中文,字母,符号
这个正则表达式怎么写? 这样的索引会看到明显的效果吗?