MySQL索引操作

文章目录

索引操作

创建主键索引

  • 法1

在创建表的时候,在字段后面添加primary key就行了,会自动创建一个b+树来管理

1
create table user1 (id int primary key);

空间不会不够,b+树可以局部加载

  • 法2

在创建表的最后,指定某列或者某几列是主键索引

1
create table u1 ( id int, name varchar(12), primary key(id));
  • 法3

使用alter

1
alter table u1 add  primary key(id);

查看索引
在这里插入图片描述

1
show index from u1\G;

在这里插入图片描述
删除主键索引

1
alter table u1 drop primary key;

再查看
在这里插入图片描述

  • 创建唯一键索引

创建普通键索引

  • 法1:在键表的时候,就指定某列为索引,必须要有主键索引
1
create table u3(name varchar(12),id int primary key,index (name));

在这里插入图片描述
一定是有两个b+树,一个表可以有好多个索引

  • 法2:在建表之后,使用alter来增加
1
alter table u3 add index (name);
  • 法3:使用create index来增加索引
1
create index myindex on u3 (name);

创建的时候给这个表起一个别名
在这里插入图片描述

删除普通索引

1
alter table u3 drop index name;

唯一键索引

  • 法1
1
create table u2 (id int primary key,name varchar(12) unique);

在这里插入图片描述
唯一键和普通索引没有任何差别,它只不过是多加了一个UNI,这个关键字

  • 法2

表已经键好了,在创建唯一键

1
alter table uu add unique(name);

全文索引

我们目前所有索引建立都是基于一列的,而且我们一列信息都不大

但是如果一列是文章呢?100000字,
当文章字段或者有大量文字的字段进行检索式,会使用全文索引,MySQL提供全文索引机制,但是又要求,必须是使用mysiam,而且默认的全文索引支持英文,不支持中文

索引创建原则

不能无脑添加索引

  • 比较频繁作为查询条件的字段应该创建索引
  • 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
  • 更新非常频繁的字段不适合创建索引
  • 不会再where自居中的字段不该创建索引

MySQL索引操作
http://example.com/2022/10/18/MySQL索引操作/
作者
Zevin
发布于
2022年10月18日
许可协议