数据库触发联合索引的几个条件
2016-05-20 11:56
344 查看
本文主要总结查询语句触发联合索引(索引定义中至少包含两个索引列)的几种条件。
示例如下。首先创建表:
CREATE TABLE E (e1 INT, e2 VARCHAR(9), e3 INT, PRIMARY KEY(e1, e3));
这样就建立了一个联合索引:e1,e3
触发联合索引是有条件的:
1、使用联合索引的全部索引键,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2
2、使用联合索引的前缀部分索引键,如“key_part_1 <op>常量”,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1
3、使用部分索引键,但不是联合索引的前缀部分,如“key_part_2 <op>常量”,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=1
4、使用联合索引的全部索引键,但索引键不是AND操作,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=2 OR E.e1=1
摘选来自文章:http://book.2cto.com/201401/39424.html
示例如下。首先创建表:
CREATE TABLE E (e1 INT, e2 VARCHAR(9), e3 INT, PRIMARY KEY(e1, e3));
这样就建立了一个联合索引:e1,e3
触发联合索引是有条件的:
1、使用联合索引的全部索引键,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2
2、使用联合索引的前缀部分索引键,如“key_part_1 <op>常量”,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1
3、使用部分索引键,但不是联合索引的前缀部分,如“key_part_2 <op>常量”,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=1
4、使用联合索引的全部索引键,但索引键不是AND操作,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=2 OR E.e1=1
摘选来自文章:http://book.2cto.com/201401/39424.html
相关文章推荐
- 手动漏洞挖掘-SQL注入小谈(二)
- sql 开窗函数
- sqlserver 性能查询CPU占用高的sql
- plsql登录数据库报错 ORA-12514
- MySQL 启动故障 处理 小记
- SQL Agent服务无法启动如何破
- oracle一个创建用户、创建表空间、授权、建表的完整过程
- MySQL 发展史
- Mysql 不同版本 说明
- MySQL 引擎 和 InnoDB并发控制 简介
- zabbix监控mysql主从
- MySQL 和 PostgreSQL 对比
- 数据库索引
- 数据库设计的特点及方法
- 连接oracle无监听器
- MemCache详细解析
- Drill sql 关键字
- 第一节 MongoDB介绍及下载与安装
- 菜鸟的sql注入历程
- 结合MongoDB开发LBS应用