Oracle模糊查询之(2.如何测试模糊查询的时间及使用是否使用索引)反向索引与模糊查询
反向索引与模糊查询
反向索引应用于前模糊的用法简介:
1、反向索引
SQL> create index ind_name on atest reverse(name);
SQL> select * from atest where name like reverse ('%y');
SQL> create index ind_idname on atest (id ,reverse(name));
具体用法展示如下:
---------------------
----------------------------------------------------------------
Oracle Database10gEnterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> conn an/an
已连接。
表已创建。
已创建 1 行。
已创建 1 行。
已创建 1 行。
提交完成。
ID NAME
---------- --------------------
1 anbaisheng
2 xiangxiang
3 baby
SQL> createindexind_name on atest(name);
SQL> select * from atest where name like 'a%';
---------- --------------------
1 anbaisheng
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 2 (0)| 00
| 1 | TABLE ACCESS BY INDEX ROWID| ATEST | 1 | 65 | 2 (0)| 00
|* 2 | INDEX RANGE SCAN | IND_NAME | 1 | | 1 (0)| 00
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("NAME" LIKE 'a%')
filter("NAME" LIKE 'a%')
SQL> select * from atest where name like '%y';
---------- --------------------
3 baby
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 3 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| ATEST | 1 | 65 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME" LIKE '%y')
正向索引后模糊查询有效,前模糊无效
SQL> drop index ind_name;
---------- --------------------
3 baby
---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 3 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| ATEST | 1 | 65 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME" LIKE '%y')
SQL> select * from atest where name like reverse ('%y');
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 0 (0)| 00
| 1 | TABLE ACCESS BY INDEX ROWID| ATEST | 1 | 65 | 0 (0)| 00
|* 2 | INDEX RANGE SCAN | IND_NAME | 1 | | 0 (0)| 00
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("NAME" LIKE 'y%')
filter("NAME" LIKE 'y%')
就算建上反向索引,不使用reverse关键字前模糊也没用,后模糊无效
这个conception里都没说,自己试了下,还成
SQL> create index ind_idname on atest (id ,reverse(name));
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Ti
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 0 (0)| 00
|* 1 | TABLE ACCESS BY INDEX ROWID| ATEST | 1 | 65 | 0 (0)| 00
|* 2 | INDEX RANGE SCAN | IND_NAME | 1 | | 0 (0)| 00
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("ID"=1)
2 - access("NAME" LIKE 'y%')
filter("NAME" LIKE 'y%')
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 65 | 2 (0)|
|* 1 | TABLE ACCESS BY INDEX ROWID| ATEST | 1 | 65 | 2 (0)|
|* 2 | INDEX RANGE SCAN | IND_IDNAME | 1 | | 1 (0)|
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("NAME" LIKE '%y')
2 - access("ID"=1)
就算是联合索引,不使用reverse的话意义也不大
Oracle模糊查询之(2.如何测试模糊查询的时间及使用是否使用索引)反向索引与模糊查询相关推荐
- MySQL讲义第 39 讲——select 查询之函数(2):日期时间型函数
MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 文章目录 MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 一.数据准备 二.MySQL 日期时间型函 ...
- MySQL索引系列--索引的优化--LIKE模糊查询
原文网址:MySQL索引系列--索引的优化--LIKE模糊查询_IT利刃出鞘的博客-CSDN博客 简介 本文介绍MySQL的LIKE模糊查询索引的优化.主要是索引失效的解决方案. 索引 ...
- oracle 测试库搭建,Oracle Study之--通过RMAN克隆测试库
Oracle Study之--通过RMAN克隆测试库 通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库.这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆 ...
- mysql 查询姓王_MySQL查询语句练习题,测试足够用了
MySQL查询语句练习题,测试足够用了 博客分类: http://blog.sina.com.cn/s/blog_767d65530101861c.html 1.创建student和score表 CR ...
- oracle联合主键 索引,关于复合主键查询时使用索引研究
当数据库创建表时,每个表只能有一个主键,但是如果想让多个列都成为主键时,就要用到复合主键. 一.主键唯一约束 我们知道当某列为主键时,Oracle会自动将此列创建唯一约束.也就是说不允许有相同的值出现 ...
- 【Java】设计银行账户类。包括帐号、姓名、开户时间、余额,成员方法包括存款、取款、查询余额,计算利息等。对所设计的类进行测试。
设计银行账户类.包括帐号.姓名.开户时间.余额,成员方法包括存款.取款.查询余额,计算利息等.对所设计的类进行测试. 要求 代码 要求 设计银行账户类.包括帐号.姓名.开户时间.余额,成员方法包括存款 ...
- 软件测试查询语句例题,SQL查询经典例题 - 青苹果测试博客 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
通过以下习题的练习,我们能快速熟悉掌握sql语句查询的语法和要领,大家要用心领会其中的要领和步骤,要学会分析步骤. 一.单表查询练习 1.查询,查询学生"张三"的全部基本信息 Se ...
- //设计银行账户类。包括帐号、姓名、开户时间、余额,成员方法包括存款、取款、查询余额,计算利息等。对所设计的类进行测试。
import java.util.Scanner; public class Bank {//设计银行账户类.包括帐号.姓名.开户时间.余额,成员方法包括存款.取款.查询余额,计算利息等.对所设计的类 ...
- Oracle EBS 洽谈报价的操作流程测试
Oracle EBS 洽谈报价的操作流程测试 1.定义洽谈报价的事务处理类型 2.分配行流 3.设置审批 4.单据序列配置 5.序列分配 6.录入销售报价,并提交. 点击行项目时,系统报错. 点击确定 ...
最新文章
- leetcode 3. Longest Substring Without Repeating Characters
- 仿小米简约Calculator
- 用python画太阳花-python 简单的绘图工具turtle使用详解
- jquery学习之1.20-获取同辈元素和子元素
- hdu3415 单调队列模板题
- php 不同权限登录界面,PHP中如何实现不同权限进入不同页面_后端开发
- Linux平台安装xtools
- c swap方法在哪个库里面_swap
- 在制造业中推进机器人技术的五种方法
- 十一、飞机大战(IVX 快速开发教程)
- 软件工程师如何自学成才?
- 【链表】剑指offer:反转链表
- VMware Workstation v14.1.3 精简特别版本
- 计算机网络技术毕业生实习报告_计算机毕业实习报告8篇完美版
- 服务器维修工程师个人简历,机械维修工程师个人简历模板精选
- cron每小时执行一次_crontab每小时运行一次
- HTTP协议为什么是无状态的?无状态指的是什么
- colormap保存 matlab_[转载]matlab的colormap的保存
- 计算机音乐谱成都.,抖音成都计算器谱子是什么 抖音成都计算器谱子分享
- 困境下的SEO,站长如何自渡?