索引

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加入模糊查询:

 

总结:尽量不要使用模糊查询会影响查询效率

posted @ 2020-04-09 21:20  一只懒懒的熊Zz  阅读(445)  评论(0编辑  收藏  举报