关于MYSQL中的多列索引(联合索引)
来源:互联网 发布:顾网络水军多少钱 编辑:程序博客网 时间:2024/05/17 23:46
MySQL可以为多个列创建索引。一个索引可以包括15个列。对于某些列类型,可以索引列的前缀。
多列索引可以视为包含通过连接索引列的值而创建的值的排序的数组。
MySQL按这样的方式使用多列索引:当你在WHERE子句中为索引的第1个列指定已知的数量时,查询很快,即使你没有指定其它列的值。
假定表具有下面的结构:
CREATE TABLE test ( id INT NOT NULL, last_name CHAR(30) NOT NULL, first_name CHAR(30) NOT NULL, PRIMARY KEY (id), INDEX name (last_name,first_name));name索引是一个对last_name和first_name的索引。索引可以用于为last_name,或者为last_name和first_name在已知范围内指定值的查询。
因此,name索引用于下面的查询:
SELECT * FROM test WHERE last_name='Widenius';
SELECT * FROM test WHERE last_name='Widenius' AND first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' AND (first_name='Michael' OR first_name='Monty');
SELECT * FROM test WHERE last_name='Widenius' AND first_name >='M' AND first_name < 'N';
然而,name索引不用于下面的查询:
SELECT * FROM test WHERE first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';
更多优化方法查看MYSQL官网手册:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#multiple-column-indexes
- 关于MYSQL中的多列索引(联合索引)
- MySQL中的联合索引
- MySql中的多列索引
- Mysql的列索引和多列索引(联合索引)
- Mysql的列索引和多列索引(联合索引)(张高伟)
- MySQL数据库索引中的单列索引与多列索引
- MySQL数据库索引中的单列索引与多列索引
- Mysql中的联合索引、前缀索引、覆盖索引
- Mysql多列索引
- MySQL多列索引
- mysql多列索引
- mysql 复合索引,联合索引
- mysql 单列索引与多列索引
- 关于联合索引
- mysql 联合索引
- mysql 联合索引详解
- mysql 联合索引温故
- mysql联合索引详解
- 转载一下:当一个男人做出这些事,他真的很爱你了
- Android 中的 framebuffer
- Android操作framebuffer[zz]
- 写于工作五个月
- Hibernate EHCache二级缓存
- 关于MYSQL中的多列索引(联合索引)
- SVG中对中文高度计算的“特殊处理”
- 数据库范式(1NF 2NF 3NF BCNF)
- 时间管理
- android下操作FrameBuffer
- hibernate ehcache
- 函数指针
- Set总结
- 深入分析 Linux 内核链表