MySQL索引的学习

MySQL索引的学习

此教程基于【编程不良人】这一次彻底搞定MySQL索引、从此不在恐惧面试,哔哩哔哩链接:https://www.bilibili.com/video/BV19y4y127h4?p=1

1.索引的介绍及分类

1.什么是索引 index
	-官方定义:一种帮助mysql提高查询效率的数据结构

-索引的优点:
	1.大大加快数据查询速度
	
-索引的缺点:
	1.维护索引需要耗费数据库资源
	2.索引需要占用磁盘空间
	3.当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响

2、索引分类
	-innoDB下:
	
         主键索引

                设定为主键后数据库会自动建立索引,创建的索引在innDB中为聚簇索引,主键索引的列值不允许存在null

         单值索引(单列索引、普通索引)

                即为非主键的列创建的索引,一个索引值包含单个列,一个表可以有多个单列索引,就是给一个表中的一个列添

         唯一索引

                索引的列的值必须唯一,但允许有空值    唯一索引索引的列值可以存在null,但是只能存在一个null

         复合索引

                即一个索引中包含多个列 ,一个索引不是由一个列决定的,而是由多个列的值决定的,如我们在查询的时候要查询多个字段,我们就可为要查询的多个字段创建一个复合索引,这样就可加快查询

                (name age) index
                
     -MyISAM下(mysql5.7之前额外拥有全文索引)
     	 
     	 Full Text 全文索引(mysql5.7之前,只能用于MyISAM引擎,5.7之后可以用于innoDB)

            全文索引类型为FULLTEXT,在定义索引的列上支持值的全文查找(类似于elasticsearch),允许在这些索引列  中插入重复值和空值。全文索引可以在char varchar Text类型列上创建,mysql5.7以前只MyISAM引擎支持全文索引                

2.索引的基本操作

我们此处与Navicat为例,新建一个数据库test,新建一个表user,

主键索引

create table  user(id varchar(20) primary key,name varchar(20))

之后查看索引

show index from user

结果如下:

image-20211221230422753

我们发现主键索引在建表时就已经创建(需指定主键)。

普通索引(单值索引、单列索引)

我们继续创建普通索引,普通索引的两种创建方式

1.建表之后创建索引,以下表示创建普通索引名字为name_index,为user表的name列

create index name_index on user(name)

image-20211221231314157

2.建表时创建(key就代表索引),这种方式不能在创建时指定索引的名字,key(name)表示为name列创建普通索引

create table user1(id varchar
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值