十七、复合索引最左特性

简介: 十七、复合索引最左特性

1、创建复合索引

ALTER TABLE employee ADD INDEX idx_name_salary (name,salary)

2、满足复合索引的最左特性,哪怕只是部分,复合索引生效

SELECT * FROM employee WHERE NAME='小王'

3、没有出现左边的字段,则不满足最左特性,索引失效

SELECT * FROM employee WHERE salary=5000

4、复合索引全使用,按左侧顺序出现 name,salary,索引生效

SELECT * FROM employee WHERE NAME='小王' AND salary=5000

5、虽然违背了最左特性,但MySQL执行SQL时会进行优化,底层进行颠倒优化

SELECT * FROM employee WHERE salary=5000 AND NAME='小王'

6、理由

复合索引也称为联合索引,当我们创建一个联合索引的时候,如(k1,k2,k3),相当于创建了(k1)、(k1,k2)和(k1,k2,k3)三个索引,这就是最左匹配原则。联合索引不满足最左原则,索引一般会失效。

目录
相关文章
|
7月前
|
C语言 容器
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)(上)
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)
56 4
|
7月前
|
C语言 C++
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)(下)
从C语言到C++_27(AVL树)概念+插入接口实现(四种旋转)
54 2
|
7月前
|
存储 关系型数据库 MySQL
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
MySQL索引简介(包含索引优化,索引失效,最左前缀简洁版)
106 0
|
索引
力扣34在排序数组中查找元素的第一个和最后一个位置:思路分析+图文详解+代码实现(最靠左索引,最靠右索引)
力扣34在排序数组中查找元素的第一个和最后一个位置:思路分析+图文详解+代码实现(最靠左索引,最靠右索引)
60 0
|
SQL 关系型数据库 MySQL
复合索引最左特性
复合索引最左特性
|
SQL 关系型数据库 MySQL
索引最左前缀原则
索引最左前缀原则
84 0
|
存储 SQL 关系型数据库
MySql索引详解-各种索引的定义与区别和应用
什么是索引?索引的作用,有无索引的区别。
217 0
MySql索引详解-各种索引的定义与区别和应用
|
索引 关系型数据库 MySQL
十六、组合索引(上)
十六、组合索引
93 0
|
机器学习/深度学习
多表查询总共三种方式,实践中来看,左连接使用最多
from table1, table2 where table1.col=table2.col 慎用第一种,对于数据量大的来说,是先查询所有的表在查询后面的条件,相当于n*n left join 会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
119 0