1、什么是索引?
索引是帮助数据库高效获取数据的数据结构。
2、索引的引用层次划分
- 唯一索引:索引列的值必须唯一,但允许有空值。
- 复合索引:一个索引包含多个列。
- 普通索引:即一个索引只包含单个列,一个表可以有多个单列索引。
3、如何添加索引
3.1主键索引
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
3.2唯一索引
ALTER TABLE `table_name` ADD UNIQUE (`column`)
3.3 普通索引
ALTER TABLE `table_name` ADD INDEX index_name (`column` )
3.4 多列索引
ALTER TABLE `table_name` ADD INDEX index_name (`column1`,`column2`,`column3`)
4、注意事项
4.1、sql语句将可过滤掉最多数据的字段放前面
比如,user表数据有1000w条,现在要查询男生(sex=1)&20岁(age=20) 的数据有多少,sql查询where 条件应该是 age=20 and sex=1
4.2、like语句 'xx%'索引有效;'%xx'索引失效
4.3、联合索引要符合最左匹配原则
例如:
user表 联合索引 name - age
sql语句where 条件
name='张三' and age=20 索引有效
age=20 and name='张三' 索引失效
4.4、使用不等于(!= 、<>)索引失效
例如:select name from user where age != 20 索引失效
4.5、字符串不用单引号索引失效
例如:
select id from user where name=张三; 索引失效
select id from user where name='张三'; 索引有效
4.6、or连接索引失效
例如:select id from user where name='张三' or name='李四' 索引失效
4.7、order by、group by 索引失效
4.8、索引列计算或用函数 索引失效
5、一条sql语句如何执行
![](https://img.haomeiwen.com/i10933541/3e2090e5fc73004b.png)
网友评论