Mysql 索引

本文详细介绍了MySQL中索引的概念、类型(如普通索引、唯一索引、全文索引等),如何在创建表时及后续操作中创建索引,并讨论了创建索引时的权衡考虑因素,包括对性能提升与资源消耗的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、索引,实际上是一个排好序的数据结构,在Mysql里面,这种数据结构主要是BTREE和Hash表。
2、通过索引查询数据,不但可以提高查询速度,还可以降低服务器的负载。不过创建和维护索引页需要耗费额外的代价,而且索引本身也是数据,同样占用物理空间。
3、不同的存储引擎规定每个表的最大索引数和最大索引长度。所有存储引擎对每个表至少支持16个索引,总索引长度至少256字节。

索引类型

1、普通索引
不做任何限制参数的索引。
2、唯一索引
加unique参数
3、全文索引
加fulltext参数,只能作用在char varchar text三种数据类型的字段上
4、单列索引
只有一列的索引
5、多列索引
有多个列的索引
6、空间索引
加spatial参数,只能建立在空间数据类型上,只有MyISAM存储引擎支持。

创建索引的方式有三种:

1)创建表的时候创建
2)通过create index脚本直接创建
3)通过alter脚本在更改表定义的时候创建

考虑到索引更多情况下是为了优化性能而创建的,建表的时候主要只创建非业务主键和业务主键,其他索引都建议在见表后根据使用情况来创建。所以,创建索引的方式也主要学习第二种就可以了。
创建脚本模板:
create [unique | fulltext | spatial ] index index_name on table_name(column_nam [(length)] [asc | desc]);

eg:
创建唯一索引
create unique index 索引名 on 表名(字段名);
创建多列索引
create index 索引名 on 表名(字段名1,字段名2,字段名3…)
删除索引
drop index 索引名 on 表名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值