2021-04-15

本文详细介绍了MySQL中的索引概念,包括其优缺点、类型(如BTree、Hash、全文索引等)、创建方法以及索引失效的常见情况。通过理解索引的工作原理,可以帮助优化查询性能,但也需要注意其对存储和更新操作的影响。
摘要由CSDN通过智能技术生成

mysql每天5道面试题

1、MySQL中什么是索引?
索引是一种数据结构,用于帮助我们在数据量多的情况下快速查询到我们想要查找的数据。可以加快查的速度,但是会增加容量,降低增,删,改的速度。
2、索引有哪些优缺点?
优点:可以大大加快数据的检索速度,这也是创建索引的最重要的原因。使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。缺点:从时间方面来看,创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率;从空间方面,索引需要占物理空间。
3、MySQL有哪几种索引类型
1、从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。这里所描述的是索引存储时保存的形式,2、从应用层次来分:普通索引,唯一索引,复合索引。普通索引:即一个索引只包含单个列,一个表可以有多个单列索引。唯一索引:索引列的值必须唯一,但允许有空值。复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
聚簇索引(聚集索引):并不是一种单独的索引类型,而是一种数据存储方式。具体细节取决于不同的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-Tree索引(技术上来说是B+Tree)和数据行。非聚簇索引: 不是聚簇索引,就是非聚簇索引

4、如何创建索引?
创建索引有三种方式。
(1) 在执行CREATE TABLE时创建索引
CREATE TABLE index1(
id INT auto_increment PRIMARY KEY
name VARCHAR (16),
last_name VARCHAR (16),
idcard VARCHAR (18),
information text,
KEY name (name, last_name),
FULLTEXT KEY (information),
UNIQUE KEY (idcard)
);
(2) 使用ALTER TABLE命令去增加索引
ALTER TABLE table_name ADD INDEX index_name (column_list);
(3)使用CREATE INDEX命令创建
CREATE INDEX index_name ON table_name (column_list)
5、什么情况下不走索引(索引失效)?
(1)使用!= 或者 <> 导致索引失效
(2)类型不一致导致的索引失效
(3)函数导致的索引失效
(4)运算符导致的索引失效
(5)OR引起的索引失效
(6)模糊搜索导致的索引失效
(7)NOT IN、NOT EXISTS导致索引失效

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值