SQL语言之索引

本文详细介绍了MySQL中的索引,包括其作用、类型、创建语法、使用策略及内部结构。索引能显著加快查询速度,但也占用磁盘空间并影响数据操作速度。文章通过实例展示了如何创建和使用各种类型的索引,如主键、唯一、全文和组合索引,以及何时应该建立或避免建立索引。同时,讨论了索引在特定查询场景下可能失效的情况,并探讨了BTree和B+Tree两种常见的索引数据结构。
摘要由CSDN通过智能技术生成

本章我们将学习MySQL中的索引,本文将从索引的作用、索引的分类、创建索引的语法、索引的使用策略以及索引的实现原理等方面带大家了解索引。

索引的作用

索引的作用就是加快查询速度,如果把使用了索引的查询看做是法拉利跑车的话,那么没有用索引的查询就相当于是自行车。目前实际项目中表的数据量越来越大,动辄上百万上千万级别,没有索引的查询会变得非常缓慢,使用索引成为了查询优化的必选项目。

索引的概念

索引其实是一种特殊的数据,也保存在数据库文件中,索引数据保存着数据表中实际数据的位置。类似书籍前面的目录,这个目录就保存了书中各个章节的页数,通过查看目录我们可以快速定位章节的页数,从而加快查找速度。

我们来看一段查询语句:

select * from book where id = 1000000;

假设书籍表中有几百万行数据,没索引的查询会遍历前面的100万行数据找到结果,如果我们在id上建立主键索引,则直接在索引上定位结果,速度要快得多。

索引的优缺点

优点:提高查询速度

缺点:本身也是数据,会占用磁盘空间;索引的创建和维护也需要时间成本;进行删除、更新和插入操作时,因为要维护索引,所以速度会降低。

使用索引的语法

创建索引

建表的同时创建索引

create table 表名

(

字段名 类型,

字段名 类型,

index 索引名称 (字段名)

);

建表后添加索引

alter table 表名 add index 索引名(字段名);

create index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值