oracle 全文索引 谁用过? 帮帮忙。。。

yue547283947 2011-07-27 04:57:50
数据库用的是 oracle 11g 400万数据用like '%%'太慢 所以找 oracle 全文索引

网上找了些东西看,始终没搞明白。

我想知道 怎么创建 怎么使用。。。。求各路大侠帮忙解决。
...全文
69 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjytiantang 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxr0323 的回复:]
参考
[/Quote] 樓上的講解很詳細~
子夜__ 2011-07-27
  • 打赏
  • 举报
回复
BenChiM888 2011-07-27
  • 打赏
  • 举报
回复
把你的 like 条件写全,才能根据你的描述写正则,效率肯定是明显的,但是会存在索引的通病,数据库会有额外维护索引的开销。
yue547283947 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 benchim888 的回复:]
引用 1 楼 benchim888 的回复:
用正则表达式 regexp_like 然后建函数索引。



SQL code


--下面两种写法是一个意思,但是第二钟方法可以用函数索引
[TEST@myorcl] SQL>select * from dual where 'aaa123bbb' like '%123%';

D
-
X

[TEST@myorcl] ……
[/Quote]

create index index_name on table_name(regexp_like(字段,正则表达式));
这个字段是 varchar2(2000)存的包括中文,字母,符号
这个正则表达式怎么写?

这样的索引会看到明显的效果吗?
BenChiM888 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 benchim888 的回复:]
用正则表达式 regexp_like 然后建函数索引。
[/Quote]


--下面两种写法是一个意思,但是第二钟方法可以用函数索引
[TEST@myorcl] SQL>select * from dual where 'aaa123bbb' like '%123%';

D
-
X

[TEST@myorcl] SQL>select * from dual where regexp_like('aaa123bbb','.+123.+');

D
-
X

create index index_name on table_name(regexp_like(字段,正则表达式));

yue547283947 2011-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 phoenix_99 的回复:]
索引的话,不能用%%,可用x%,
也就是说SQl语句中%数值%,是不走索引的,而数值%是走索引的
应根据实际内容进行SQL语句的修改
[/Quote]

oracle 建全文索引 就可以。。。。 但不知道再怎么建
Phoenix_99 2011-07-27
  • 打赏
  • 举报
回复
索引的话,不能用%%,可用x%,
也就是说SQl语句中%数值%,是不走索引的,而数值%是走索引的
应根据实际内容进行SQL语句的修改
BenChiM888 2011-07-27
  • 打赏
  • 举报
回复
用正则表达式 regexp_like 然后建函数索引。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧