以前有个人问过我一个问题,在查询的时候百分号的位置跟是否进行索引扫描的关系,它的答案大概是:%出现在字符串的第一个位置则不进行索引扫描,如果在中间和末尾则进行索引扫描,为了验证这个结论是否正确我在DB2中做了如下实验:
db2cmd
db2start
db2 connect to sample(如果sample数据库不存在可以用db2sampl创建)
db2 "create table test(col1 varchar(20))"
db2 "insert into test(col1) values('qooinmdfoaf00'),('adfafeee')"
db2 "create index col1 on test(col1 asc )"
db2expln -d sample -u luzl yqqlm0421 -terminal -q "select * from test where col1 like '%k'" -g
DB2 Universal Database Version 9.1, 5622-044 (c) Copyright IBM Corp. 1991, 2006
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool
DB2 Universal Database Version 9.1, 5622-044 (c) Copyright IBM Corp. 1991, 2006
Licensed Material - Program Property of IBM
IBM DB2 Universal Database SQL and XQUERY Explain Tool
******************** DYNAMIC ***************************************
==================== STATEMENT ==========================================
Isolation Level = Cursor Stability
Blocking = Block Unambiguous Cursors
Query Optimization Class = 5
Partition Parallel = No
Intra-Partition Parallel = No
SQL Path = "SYSIBM", "SYSFUN", "SYSPROC", "SYSIBMADM",
"LUZL"
Statement:
select *
from test
where col1 like '%k'
Section Code Page = 1208
Estimated Cost = 0.014781
Estimated Cardinality = 0.200000
Access Table Name = LUZL.TEST ID = 2,5
| Index Scan: Name = LUZL.COL1 ID = 1
| | Regular Index (Not Clustered)
| | Index Columns:
| | | 1: COL1 (Ascending)
| #Columns = 1
| #Key Columns = 0
| | Start Key: Beginning of Index
| | Stop Key: End of Index
| Index-Only Access
| Index Prefetch: None
| Lock Intents
| | Table: Intent Share
| | Row : Next Key Share
| Sargable Index Predicate(s)
| | #Predicates = 1
| | Return Data to Application
| | | #Columns = 1
Return Data Completion
End of section
Optimizer Plan:
RETURN
( 1)
|
IXSCAN
( 2)
/ \
Index: Table:
LUZL LUZL
COL1 TEST
很明显,使用了索引扫描,大家再别的数据库试试,是否这个结论仅仅是传说还是,有根据呢?
分享到:
相关推荐
实验8:在显示的时候去掉重复的行 16 实验9:显示表的部分行和部分列,使用where子句过滤出想要的行 18 实验10:使用like查询近似的值 18 实验11:使用order by子句来进行排序操作 20 实验12:操作字符串的函数 22 ...
sql学习 索引去哪儿_like与 %间一波三则的故事.sql
echo %m%%mm%: %mmm%%mmmm%%mmmmm%%mmmmmm% title %m%%mm%: %mmm%%mmmm%%mmmmm%%mmmmmm% SETLOCAL DISABLEDELAYEDEXPANSION echo ----Forbid The Same Task---- Ehym Personal set /p program=Please input the task...
LikeView How to use 1、To include likeview to your project: add the dependency to the the build.gradle file compile 'com.jaren:likeview:1.2.1' 2、Create likeview : create default create with ...
Speak English Like An American.pdf 电子书非扫描版,可以复制里面的内容到放到MP3
分享给大家供大家参考,具体如下: 数据库是Sqlserver 2016版 现在业务需求是:要查询出企业名称为以下几个的,XXX,XXXX等等: 第一种方式:like '%XXX%' OR like '%XXXX%' select cName from tAccountAuditing ...
Like是否使用索引? 1、like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。 2、like keyword% 索引有效。 3、like %keyword% 索引...
3.2 索引列参与了运算,会导致全表扫描,索引失效(除主键索引外) 3.3 模糊查询时(like语句),模糊匹配的占位符位于条件的首部 3.4 索引列参使用了函数 3.5 参数类型与字段类型不匹配,导致类型发生了隐式转换,...
......... SELECT * FROM TABLE WHERE NAME LIKE '%%' AND ADDR LIKE '%%' AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%' OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' ) ...........
实验二:NAT和DHCP结合配置实验.doc 实验二:NAT和DHCP配置.pkt 实验二telnet远程登录路由器.pkt 实验六:OSPF的配置.pkt 实验六:PPP基本配置与认证.doc 实验六:PPP基本配置与认证.pkt 实验六:单区域OSPF配置.doc...
Projetobásico,Laravel,可重复使用的实用程序条件和QueryString。 Descrição 信息摘要,内容权和附加条件。 Utilizaçãoda classe AbstractRepository 扩展class em um存储库。 Consultas实用条件: ...
主要介绍了关于利用reverse索引优化like语句的方法,文中通过图文介绍的很详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
【机器人】Car-Like小车移动机器人控制实验(word报告+matlab程序代码)
①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。 ②、查询速度快:查询速度比LIKE '%...%"搜索快3~50倍...
①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。 ②、查询速度快:查询速度比LIKE '%...%"搜索快3~50倍...
=或者会导致索引失效7.is null和is not null无法使用索引8.like以通配符%开头会导致索引失效9.字符串不加引号索引失效10.用or关键词会使得索引失效 索引简介 是什么: 帮助MySQL高效获取数据的数据结构(B树结构) ...
sql = “SELECT * FROM table_test WHERE value LIKE ‘%%%%%s%%%%'” % test_value 执行成功,print出SQL语句之后为: SELECT * FROM table_test WHERE value LIKE ‘%%public%%’ Python在执行sql语句的时候,...
有索引的时候:创建索引的本质就是创造额外的文件,查询时先去额外的文件找,定好位置,再去原始表直接查询,提高查询速度,但是增删改的速度依然慢,创建索引后必须命中索引才有效 索引的分类 1、普通索引:加速...
实验一 数据定义和数据库的完整性(4学时) 一、实验目的: 1、掌握SQL的数据定义功能 熟悉SQL Server的操作界面及主要组件; 掌握使用SQL语言创建数据库、表、索引和修改表结构。 2、掌握SQL语言对数据库完整性的...
以上这篇基于Django filter中用contains和icontains的区别(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:浅谈django mode