索引
1、什么是索引?有什么用?
索引相当于一本书的目录,通过索引可以快速的查找到相应的资源,缩小查找的范围
在数据库通过表查询数据方面,一般有两种方式:
(1)第一:全表扫描所有的数据
(2)第二:通过索引进行查找
注意:索引虽然可以提高检索效率,但是不能随便添加索引,因为索引也是数据库当中的对象,也需要数据库不断地维护。是有维护成本的。
比如表中的数据经常被修改就不适合添加索引,因为数据一旦被修改,索引需要重新排序
2、什么时候给字段添加索引?(满足什么条件)
2.1注意:添加索引一般是给某个字段或者一些字段添加索引
2.2添加原则:(1)该字段数据量庞大
(2)该字段很少出现DML操作(insert、delete、update操作时索引也要进行排序)
(3)该字段一般出现在where子句后
注意:设置为主键(primary key)、unique关键字的字段会自动添加索引
3、查看sql语句的执行计划
explain select * from tablename where + 条件;
3.1我们通过id和name字段分别查看sql执行计划,因为id字段我们设置为primary key 检索时自动通过索引只查找,只查找一行,而通过name查找的需要扫描8行
3.2 给字段添加索引
create index tablename_字段名_index on tablename(字段名)
create index t_user_name_index on t_user(name)
删除索引:
drop index tablename_字段名_index on tablename;
drop index t_user_name_index on t_user;
a.未加索引时sql语句查询时的执行计划:
b.添加索引后sql语句查询时的执行计划:
3.3索引的硬盘映射机制原理:
4、索引失效
当使用模糊查询时,第一个为%时为失效。
4.1总表数据:
4.2加入模糊查询:
总结:尽量不要使用模糊查询会影响查询效率