两边都存在模糊查询的通配符 % 如何走索引
时间: 2023-08-11 22:33:33 浏览: 286
如果模糊查询通配符 % 同时出现在查询字符串的两边,例如:
```
SELECT * FROM my_table WHERE name LIKE '%john%';
```
这种情况下,Oracle 通常无法使用索引进行查询,因为它无法确定哪些索引键值可以匹配查询字符串。
但是,如果你使用 Oracle 11g 或更高版本,可以考虑使用 Oracle Text 以及全文索引来进行模糊查询。具体步骤如下:
1. 创建全文索引
```
CREATE INDEX my_index ON my_table(name) INDEXTYPE IS CTXSYS.CONTEXT;
```
2. 使用 CONTAINS 函数进行查询
```
SELECT * FROM my_table WHERE CONTAINS(name, 'john', 1) > 0;
```
这样可以确保 Oracle 使用全文索引进行模糊查询,并且可以获得较好的查询性能。但需要注意的是,全文索引需要占用较大的磁盘空间,因此需要慎重考虑是否使用。
相关问题
oracle模糊查询走索引
在 Oracle 中,模糊查询可以使用 LIKE 关键字来实现,例如:
```
SELECT * FROM my_table WHERE name LIKE '%john%';
```
若要确保模糊查询走索引,可以采用以下方法:
1. 确保模糊查询的通配符 % 出现在查询字符串的结尾,例如:
```
SELECT * FROM my_table WHERE name LIKE 'john%';
```
这样可以确保 Oracle 使用索引进行查询。
2. 将模糊查询的通配符 % 放在查询字符串的开头,但同时使用索引。
这可以通过创建函数索引来实现,例如:
```
CREATE INDEX my_index ON my_table (LOWER(name));
```
然后可以使用以下查询语句:
```
SELECT * FROM my_table WHERE LOWER(name) LIKE '%john%';
```
这样可以确保 Oracle 使用索引进行查询,并且不会导致全表扫描。
模糊查询什么时候不会走索引,什么时候会
模糊查询是否走索引,要根据模糊查询的具体方式来决定。如果使用通配符(如 %abc%)或者正则表达式等方式进行模糊查询,则通常不会走索引。因为这些查询方式无法利用索引的前缀匹配优化,需要对所有数据进行匹配,效率较低。
而如果使用“like 'abc%'”这样的前缀匹配方式进行模糊查询,则可以利用索引的前缀匹配优化,从而提高查询效率。在这种情况下,如果表中的字段建立了前缀索引,则会走索引;如果没有建立前缀索引,则不会走索引。
需要注意的是,索引不是万能的,有些情况下即使走索引也可能会比全表扫描更慢,因此在实际应用中需要根据具体情况来选择最优的查询方式。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)