我在ORACLE10G中,有个表的字段是文章的内容CLOB字段,我通过LIKE 查询这个字段的内容,但是非常非常的慢,怎么才能让它快起来啊??
建议使用全文检索(FULL TEXT SEARCH)。
用ORACLE8i中的intermedia text或者oracle9i的text对CLOB字段建一个CTXSYS.CONTEXT 类型的索引, 然后在查询时用CONTAIN作为查询条件.代码如下:
[code="sql"]--创建表
CREATE TABLE tb_clob(
userid NUMBER PRIMARY KEY,
text CLOB
);
--建立索引
CREATE INDEX search_idx
ON tb_clob(text)
INDEXTYPE IS ctxsys.CONTEXT;
--查询
SELECT COUNT(*)
FROM tb_clob
WHERE contains(text, 'index', 1) > 0
[/code]
dbms_lob.instr(colname,searchValue,1,1)>0
这样可能会好点.
全文检索,关系数据库总的是不咋的吧.
对大字段的查询还是全文检索吧
如果是大文本,还是建议使用全文检索。用CLOB自带的函数检索,效率肯定不怎么的。关键是用不上索引。
建议结合lucene使用。数据库的全文检索有点鸡肋。