MySQL中相关索引


在 MySQL 数据库中创建索引的主要原因是为了提高查询性能。

主要作用

  1. 提高查询性能

    • 索引可以显著提高数据检索的速度。对于大数据集,使用索引可以避免全表扫描,从而加快查询速度。例如,当在一个包含数百万条记录的表中查找特定记录时,索引可以将搜索时间从几秒甚至几分钟缩短到毫秒级。
  2. 加速排序和分组操作

    • 索引可以加速 ORDER BYGROUP BY 和聚合函数(如 COUNTSUM)的操作。对于需要排序或分组的大量数据,索引可以极大地提高这些操作的性能。
  3. 强制唯一性

    • 索引可以用来强制表中的某些列的值是唯一的。例如,主键(PRIMARY KEY)索引和唯一(UNIQUE)索引确保了某列或某几列的值在表中没有重复。这对于数据完整性和一致性非常重要。
  4. 加速联接(JOIN)操作

    • 当对多个表进行联接操作时,索引可以显著提高联接效率。通过在被联接的列上创建索引,可以加速表之间的匹配过程。

1、主键索引

表结构:
在这里插入图片描述
为svip表的vip_id字段添加主键索引(PRIMARY KEY):

ALTER TABLE svip ADD PRIMARY KEY (vip_id)

执行结果:
在这里插入图片描述
一张表只能有一个主键索引,再次添加会报重复主键:
在这里插入图片描述

2、普通索引

ALTER TABLE svip ADD PRIMARY KEY (vip_id)

为svip表的vip_name字段添加普通索引(INDEX),索引名字叫index_name:
在这里插入图片描述
表结构:
在这里插入图片描述

3、唯一索引

为svip表的vip_cardID字段添加唯一索引(UNIQUE):

ALTER TABLE svip ADD UNIQUE (vip_cardID)

4、全文索引

为svip表的vip_mark字段添加全文索引(FULLTEXT)

ALTER TABLE svip ADD FULLTEXT (vip_mark)

5、联合索引

为svip表的字段vip_phone和vip_address添加联合(多列)索引:

ALTER TABLE svip ADD INDEX index_contact (vip_phone,vip_address)

6、查询索引

查询svip表索引:

SHOW INDEX FROM svip

在这里插入图片描述

7、删除索引

删除svip表的index_contact索引:

DROP INDEX index_contact ON svip

注意事项

  1. 索引的代价

    • 索引加速查询速度,但也会增加存储空间的使用。同时,插入、更新和删除操作可能会因为需要维护索引而变慢。
  2. 选择合适的列创建索引

    • 不是所有列都需要索引。创建索引应针对查询频繁的列,特别是那些用于 WHEREORDER BYJOIN 和聚合函数中的列。
  3. 避免过多索引

    • 虽然索引有助于查询性能,但过多的索引会影响写操作的性能,并增加维护索引的开销。

总结

创建索引的主要原因是提高查询性能。通过正确设计和使用索引,可以大幅提升数据库操作的效率,尤其是在处理大量数据时。了解和合理使用索引是数据库设计和优化的重要部分。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rsun04551

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值