MySql索引总结(面试高频问题整理:B+树/聚簇/非聚簇索引)

MySql
1、什么是索引?(index)
  • 官方定义:一种帮助mysql提高查询效率的数据结构

  • 索引的优缺点:

    • 大大提高数据查询速度
    • 维护数据耗费数据库资源
    • 索引需要占用磁盘空间
    • 增删改的时候,维护索引时,速度会受到影响(这个地方面试官可能会问你了,为什么增删改会影响速度,而查询不会呢?目的是为了引出索引的数据结构,下面会详细说明,这里先有个基本的映象,面试被问到了,别一股脑说增删改查。)
  • 索引分类

    • 主键索引

      设定为主键后数据库自动创建索引,innodb为聚簇索引

    • 单列索引(单值索引)

      一个索引只包含单个列,一个表可以有多个单列索引

    • 唯一索引

      索引列的值必须唯一,允许有空值

    • 复合索引

      一个索引包含多个列

    • 全文索引(Full Text:MySql5.7之前,基于MYISAM引擎)

    (注:索引分类这块儿,没什么可说的,如果面试被问到了,背八股吧,上面比较重要的主键索引和全文索引一定要记得说,然后根据字面意思稍微扩展一些,只要这几个能背下来,扩展「瞎说」还不手到擒来吗?总之唬住面试官)

2、索引的基本操作(面试的话这部分内容可跳过)
  1. 主键索引 自动创建

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

    查看索引

    show index from user

在这里插入图片描述

(一般面试如果考SQL语句的话,有两种考法,一种是给一条语句让你分析,比如有没有错误或者有没有优化,另一种就是让你写一条SQL语句了,大厂一般会考的比较复杂一些,但是别慌,能写多少是多少。不过以我的经验来看,一般考SQL语句的不太多,因为面试官写多了CRUD,数据库语句也不一定写的有多好,避免露怯一般不怎么会问。)

  1. 单列索引(普通索引、单值索引)【关键字:key】

    • 建表时创建

      create table `user2`(
      id varchar(20) PRIMARY KEY,
      name varchar(20),
      key(name)#给name设索引
      )
      

    在这里插入图片描述

    • 建表后创建

      create index nameindex on 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值