MySQL单列索引和组合索引
来源:互联网 发布:ksvd算法原理 编辑:程序博客网 时间:2024/05/26 02:51
单列索引,顾名思义也就是只有一个字段的索引列。
组合索引,又称复合索引,两个或更多个列上的索引被称作复合索引。对于复合索引,他们都遵循左侧原则,也是就是说一个查询可以只使用复合索引最左侧的一部份。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。
假如:我们有如下的一个表结构:
create table test( a int, b int, c int, KEY a(a,b,c));
那么我们看一下下列语句:
优: select * from test where a=10 and b>50
差: select * from test where b = 50优: select * from test order by a
差: select * from test order by b
差: select * from test order by c优: select * from test where a=10 order by a
优: select * from test where a=10 order by b
差: select * from test where a=10 order by c优: select * from test where a>10 order by a
差: select * from test where a>10 order by b
差: select * from test where a>10 order by c优: select * from test where a=10 and b=10 order by a
优: select * from test where a=10 and b=10 order by b
优: select * from test where a=10 and b=10 order by c优: select * from test where a=10 and b=10 order by a
优: select * from test where a=10 and b>10 order by b
差: select * from test where a=10 and b>10 order by c
观察上诉语句,我们得出如下结论:
1. ORDER BY 中的字段必须按照SQL语句中的顺序来建索引;
2. ORDER BY 中的字段的排序顺序必须一直,否则索引无效。
3. 建了索引不一定就有效,用实际的SQL检查一下。
我们再说说索引应该遵循的原则:
1.索引越少越好 。
原因:主要在修改数据时,第个索引都要进行更新,降低写速度。2.最窄的字段放在键的左边
3.避免file sort排序,临时表和表扫描.
- MySQL单列索引和组合索引
- MySQL单列索引和组合索引的区别
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别介绍
- MySQL单列索引和组合索引的区别
- MySQL单列索引和组合索引的区别
- MySQL单列索引和组合索引的区别介绍
- 组合索引和单列索引效率对比
- 组合索引和单列索引效率对比
- MySQL单列索引和联合索引
- 设计模式-抽象工厂模式(abstract factory)
- 快速幂
- 微信朋友圈图片处理策略
- Sql Server 2008 数据库优化常用脚本
- 幻读与不可重复读区别
- MySQL单列索引和组合索引
- 网马检测
- 第二章 对象、消息、运行期
- mybatis map foreach遍历
- The Cook and the Chef: Musk’s Secret Sauce
- hdu 1402 A * B Problem Plus(快速傅里叶变换模板)
- CDOJ 1135 邱老师看电影 概率dp
- Ubuntu14安装JDK8
- Redis资料整理