数据库触发联合索引的几个条件
2016-02-17 16:46
246 查看
本文主要总结查询语句触发联合索引(索引定义中至少包含两个索引列)的几种条件。
示例如下。首先创建表:
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
示例如下。首先创建表:
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
相关文章推荐
- Mybatis乱码问题_me
- sql server 2008 非域环境下数据库镜像配置
- Mysql删除所有表
- C# 与 Oracle 中 BINARY_DOUBLE数据类型查询
- sql server 数学函数浅析
- sql2008评估期已过。有关如何升级您的测试版软件的信息
- MySQL在服务器异常断电后,无法重启解决办法
- mysql使用JTA实例
- Oracle RAC环境的日志体系
- MySQL 5.6 my.cnf 参数说明(转)
- MongoDB 学习笔记(五)索引
- MySQL删除重复数据
- 将TXT文件中的数据整理成sql数据库
- SQL merge into 表合并
- PostgreSQL 里 下标从 1 开始
- SqlServer coalesce函数
- MySQL执行SHOW STATUS查询服务器状态状态之Handler_read_* 详解
- MongoDB常用查询
- MySQL临时表的简单用法
- mysql索引需要了解的几个注意