oracle12c - 优化字符串搜索 oracle 12c 的最佳方法
问题描述
我有一张如下表:
create table xx (university varchar2(2), sub_uni varchar2(2), id varchar2(30), name varchar2(80))
哪个有 pk 索引university,sub_uni,id
我想对名称列进行快速搜索,如下所示:
select * from xx where upper(name) like upper('%JOHN%')
但是,由于我的表包含大约 2200 万条记录,并且上述查询执行全表扫描,因此大约需要 20-25 秒。
为了优化查询,我现在尝试使用 Oracle Text..
CREATE INDEX xx_name ON xx(name) INDEXTYPE IS CTXSYS.CONTEXT
创建此索引后,过滤记录的查询需要不到一秒钟的时间
select * from xx where contains(name,'JOHN') > 0
但是,由于我无法找到很多关于 oracle 文本的文档,我担心/担心此类索引的其他影响。
例如。该表平均添加 5000 行,而每天更新 1000 万行。
在这种情况下使用 Oracle Text 是否有任何影响/是否有任何其他方法可以加速此查询。
此外,我无法在创建域索引时指定表空间,当我删除它时,它甚至没有出现在回收站中!!!
提前致谢。
解决方案
推荐阅读
- android - OnActivityResult 中处理 Result.Canceled
- python-3.x - 如何在 Python 中优化我的两个总和代码?
- python-3.x - 当我尝试导入我自己的特殊文件时,它给出了错误“ModuleNotFoundError: no module named '(file_name)'”
- php - 使用 copy() 或 file_get_contents() 获取名称中包含非英文字符的文件
- java - Java中的C指针等价
- twitter-bootstrap - Boostrap 4 Flexbox Row 在列中显示为与行相对?
- python - 这是什么 AttributeError: 递归?相关黑帽python第7章github命令与控制
- python - 为什么 re.match(...) == True 打印 False?
- c# - 将 Process.StandardInput 与 Mono 一起使用
- symfony - 登录 Symfony 4 后 FOSUserBundle 重定向