一次把面试遇到的索引问题全部搞定!(面试必用)

1、什么是索引
    1、类似于书籍的目录,让我们快速查询到所需内容
    2、分为普通索引、唯一索引、主键索引、组合索引、全文索引

2、什么情况下会创建索引
    1、想加快数据和表之间的检索速度
    2、列经常被用在where条件
    3、大量空值
    4、表几乎没有被修改
    5、数据量太多,只有极少数据被选出来

 

3、新建索引需要注意什么
    1、创建索引后,插入修改时间增加,所以注意数据不要频繁修改
    2、注意非空字段的处理,比如NOT NULL
    3、索引需要占物理空间,注意非必要不要建索引,特别是聚集索引

4、创建索引的几种方式
    1、在执行CREATE
    2、使用 ALTER TABLE 命令去增加索
    3、使用 CREATE INDEX 命令创建

5、什么情况会导致索引失效
    1、对列进行计算或使用函数时
    2、反向操作或like操作
    3、在where语句中使用or,如果有一个列没有索引,其他列就会失效
    4、!=判断
    5、is null和is not null、not in和not exists
    6、左连接查询和右连接查询关联的字段编码格式不一样

 

6、如何避免索引失效
    1、建立几个复核索引字段,最好就用上几个字段,且按照顺序来用
    2、如果索引了多列,要遵循最左前缀法则,不跳过索引中间的列
    3、不要在索引上做任何计算、函数、or、类型转换
    4、存储引擎不能使用索引中范围条件右边的列,中间索引到了范围,那就全部失效
    5、尽量使用覆盖索引,减少select*
    6、字符串不加单引号会导致失效

 


7、说一下聚集索引和非聚集索引
    1、聚集索引
        1、聚集索引是索引结构和数据一起存放的索引
        2、类似于字典,整个字典本身就已经默认排序过,比如我们查询a开头的就会默认查找最前面,而z开头就查找最后面
    2、非非聚集索引
        1、非聚集索引是索引结构和数据分开存放的索引
        2、类似于偏旁部首找字,先找到该字所在地址,再根据地址再找
    3、区别及优缺点
        1、字典只有一种排序方式,所以聚集索引也一样,一个表只能有一个,而非聚集可以多个
        2、聚集物理连续,非聚集不连续(因为非聚集索引就是普通索引)
        3、聚集索引查询效率更高,非聚集索引写入效率更高
        4、可以两者结合使用,然后选性能高的列,效果会更优

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值