MySQL索引

一、索引介绍

索引:官方定义:一种帮助mysql提高查询效率的数据结构

优点:大大加快数据查询速度

缺点:1.维护索引需要耗费数据库资源

2.索引需要占磁盘空间

        3.当对表的数据进行增删改查的时候,因为要维护索引,速度会受到影响

二、索引分类

1.InnoDB引擎支持的索引(前四个标红的索引为重点)

  1. 主键索引:设定主键后数据库会自动建立索引,InnoDB为聚簇索引;索引列的唯一且不为空null
  2. 单值索引(单列索引/普通索引):即一个索引中只包含单个列,一个表可以有多个单列索引
  3. 唯一索引索引列的值必须唯一,但允许有空值null
  4. 复合索引:即一个索引包含多个列
  5. Full Text(全文索引):在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值;全文索引可以在CHAR、VARCHAR、TEXT类别列上创建,MYSQL只有MYISAM存储引擎支持全文搜索(Mysql5.7版本以前,只能用于MyISAM引擎)

三、索引的基本操作

1.查看某表的索引

show index from 表名;

2.删除索引

drop index 索引名 on 表名;

3.创建索引

3.1主键索引

create table  t_user (id varchar(20) PRIMARY KEY,name varchar(20));

主键索引无需创建,在创建表时自动创建; 

3.2单列索引(单值索引/普通索引)

  • 创建表后创建索引
create index 索引名 on 表名(列名);
  • 创建表时创建索引
create table t_user1  (id varchar(20) PRIMARY key, name varchar(20), key(name));

注意:随表一起创建的索引,其索引名与列名一致;无法单独指定索引名;

3.3 唯一索引

  • 建表时创建
create table t_user (id varchar(20) PRIMARY key,name varchar(20),UNIQUE(name));
  • 建表后创建
create unique index 索引名 on 表名(列名);

3.4复合索引

  • 建表时创建
create table t_user1  (id varchar(20) PRIMARY key, name varchar(20), key(name,id));
  • 建表后创建
create index 索引名 on 表名(列名1,列名2);

注意:复合索引的最左前缀原则 

四、索引的底层原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值