mysql索引二

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语句如何执行

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容