mysql索引

概述

索引的作用:是用于快速定位实际数据位置的一种机制。

4种类型:

主键索引,唯一索引,普通索引,全文索引。

无论任何类型,都是通过建立关键字与位置的对应的关系来实现的。以上类型的差异,是对关键字的要求不同。

关键字:记录的部分数据(某个字段,某些字段,某个字段的一部分)

普通索引:对关键字没有要求。

唯一索引:要求关键字不能重复,同时增加唯一约束。

主键索引:要求关键字不能重复,也不能为NULL。同时增加主键约束。

复合索引:一个索引通过在多个字段建立。

 

1,创建索引

建表时:

修改表结构时:

1.添加PRIMARY KEY(主键索引) 
mysql>alter table table_name add primary key ( column ) 
2.添加UNIQUE(唯一索引) 
mysql>alter table table_name add UNIQUE KEY (column)
3.添加INDEX(普通索引) 
mysql>alter table table_name add INDEX (column) 
4.添加复合索引 
mysql>alter table table_name add INDEX ( column1, column2 )

2,删除索引

除了删除主键索引,其它不管什么类型索引都用以下方式

mysql>alter table table_name drop index  索引名称

3,查看索引

show index from table_name

4,创建索引注意事项

第一:较频繁的作为查询条件字段应该创建索引

select * from table_name where id= 1

第二:唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

select * from table_name where sex = '男‘

第三:更新非常频繁的字段不适合创建索引

select * from table_name where logincount = 1

第四:不会出现在WHERE子句中字段不该创建索=>会出现在where子句中的字段创建索引

5,执行计划

 主要用于分析sql语句的执行情况(并不执行sql语句)得到sql语句是否使用了索引,使用了哪些索引

  语法: desc  sql语句\G  

6,索引的数据结构

 

 7,索引覆盖

 概述:查询字段 索引字段 完全一致或者 索引字段一部分时查询速度非常快

 

 复合索引的索引覆盖,

idname创建复合索引

负面影响,增加了索引的尺寸(索引文件变大

 

posted @ 2019-08-15 14:32  JDbeyond  阅读(135)  评论(0编辑  收藏  举报