博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql的列索引和多列索引(联合索引)
阅读量:6046 次
发布时间:2019-06-20

本文共 1294 字,大约阅读时间需要 4 分钟。

转自:http://blog.chinaunix.net/uid-29305839-id-4257512.html

 

创建一个多列索引:
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)  
);  
创建多个索引:
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),  
     INDEX_2 name (first_name)  
);  
当查询语句的条件中包含last_name 和 first_name时,
例如:SELECT * FROM test WHERE last_name='Kun' AND first_name='Li';  
sql会先过滤出last_name符合条件的记录,在其基础上再过滤first_name符合条件的记录。那如果我们分别在last_name和first_name上创建两个列索引,mysql的处理方式就不一样了,它会选择一个最严格的索引来进行检索,可以理解为检索能力最强的那个索引来检索,另外一个利用不上了,这样效果就不如多列索引了。
但是多列索引的利用也是需要条件的,以下形式的查询语句能够利用上多列索引:
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';
以下形式的查询语句利用不上多列索引:
SELECT * FROM test WHERE first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';
多列建索引比对每个列分别建索引更有优势,因为索引建立得越多就越占磁盘空间,在更新数据的时候速度会更慢。另外建立多列索引时,顺序也是需要注意的,应该将严格的索引放在前面,这样筛选的力度会更大,效率更高。
 

转载于:https://www.cnblogs.com/onmyway20xx/p/4194312.html

你可能感兴趣的文章
一个5位数,判断它是不是回文数
查看>>
[NOIP2011] 观光公交
查看>>
MD5+Salt安全浅析 分类: 软件插件学习 ...
查看>>
通过“改变引用”和“加锁”的方式提高缓存访问并发度
查看>>
蚁群算法
查看>>
dedecms 后台栏目添加图片
查看>>
有关OOM KILLER的一些理解
查看>>
输出一个对象,会默认执行toString()方法
查看>>
数组访问-ArrayAccess
查看>>
20050413:好的代码,处理报错很重要
查看>>
浏览器内核控制Meta标签说明文档
查看>>
Android客户端从服务端获取数据JSON解析
查看>>
js 限制只能输入数字小数点
查看>>
javascript中document.appendChild和document.body.appendChild的问题
查看>>
js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
查看>>
python之路--内置常用模块
查看>>
MySql分组函数-Group by与having理解
查看>>
html标签二
查看>>
关于使用Binlog和canal来对MySQL的数据写入进行监控
查看>>
04-PHP-redis
查看>>