MySQL索引操作

文章目录

  • 索引操作
    • 创建主键索引
    • 创建普通键索引
    • 唯一键索引
  • 全文索引
  • 索引创建原则

索引操作

创建主键索引

  • 法1
    在创建表的时候,在字段后面添加primary key就行了,会自动创建一个b+树来管理
create table user1 (id int primary key);

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

  • 法2
    在创建表的最后,指定某列或者某几列是主键索引
create table u1 ( id int, name varchar(12), primary key(id));
  • 法3
    使用alter
alter table u1 add  primary key(id);

查看索引
MySQL索引操作_第1张图片

 show index from u1\G;

MySQL索引操作_第2张图片
删除主键索引

alter table u1 drop primary key;

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

  • 创建唯一键索引

创建普通键索引

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

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

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

创建的时候给这个表起一个别名
MySQL索引操作_第3张图片

删除普通索引

alter table u3 drop index name;

唯一键索引

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

MySQL索引操作_第4张图片
唯一键和普通索引没有任何差别,它只不过是多加了一个UNI,这个关键字

  • 法2
    表已经键好了,在创建唯一键
 alter table uu add unique(name);

全文索引

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

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

索引创建原则

不能无脑添加索引

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

你可能感兴趣的:(MySQL,mysql,数据库,sql)