mysql索引

mysql索引

delimiter //

create trigger 

 

 

create table aa(id int) engine myisam;

 

在没有索引的前提下,几次查询的结果大同小异

alter table aa add index(id);

删除索引

alter table aa drop index id;

 

 

 type为ALL,就说明这个查询时全表扫描,意味着这条select 语句差的已经不能再差了

possible_keys  意味着mysql预测会使用哪列作为索引的列

KEY :才是真正使用索引的列

Rows:涉及了多少行

Extra:使用where来定位

注:在mysql里索引页称之为键(key)

 

 

 

索引的优缺点

优点:可以大大提高查询的速度

缺点:

  降低了写入的速度,建议如果大量插入数据的时候,可以先删除索引, 等数据插入完成后,再次添加索引。

也可以先禁用,插入完数据后,再启用。

alter table aa disable keys;  禁用索引

alter table aa enable keys;  启用索引

因为索引也是存数据的,所以也会占用硬盘空间,有的是有索引的大小比数据还要大

 

索引的类型:

普通索引

  没有其他的约束

唯一性索引

主键索引(当创建了主键,主键这列就是主键索引)

 

多列索引

  创建一个索引,这个索引有多列

全文索引

 

 

 

  可以在创建表的时候就创建索引

create table aa(

  id int ,

 name varchar(20)

index {unique|primary|fulltext} 索引名(列)//普通索引

);

 

查看索引

show index from aa\G;

 

删除索引

alter table aa drop index id;

 

使用alter添加索引

  alter table aa index bb(id)\G;

 

posted @ 2021-01-19 17:27  梁永旺  阅读(29)  评论(0编辑  收藏  举报