MySQL中的索引

本文详细介绍了MySQL中的索引,包括索引的概念、优缺点、分类和不同类型如普通索引、唯一索引、主键索引等。此外,还探讨了索引的使用和设计规范,如选择合适的数据类型、避免过多的null值,以及如何针对不同的SQL场景创建和优化索引。最后,文章提到了不适合创建索引的情况,强调了在性能权衡中做出明智选择的重要性。
摘要由CSDN通过智能技术生成

1、什么是索引
索引是表的目录,是数据库中专门用于帮助用户快速查询数据的一种数据结构。类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。同时索引也是一张表,该表中存储着索引的值和这个值的数据所在行的物理地址,使用索引后可以不用扫描全表来定位某行的数据,而是通过索引表来找到该行数据对应的物理地址。
2、索引的优缺点
a、优点:
1)建立索引的列可以保证行的唯一性,生成唯一的rowId。
2)索引可以有效缩短数据的检索时间,减少I/O次数。
3)索引可以加快表与表之间的连接。
4)为用来排序和分组的字段建立索引可以加快分组和排序。
b、缺点:
1)创建索引和维护索引需要时间成本,这个成本随着数据量的增大而加大。
2)创建索引和维护索引需要空间成本,每一条索引都需要占据数据库的物理存储空间,数据量越大,占用空间也越大。
3)会降低表的增删改的效率,因为每次增删改,索引需要进行动态维护。
3、索引分类
a、索引类型
1)普通索引
2)唯一索引
3)主键索引
4)组合索引
5)全文索引
b、聚集索引和非聚集索引
聚集索引:也称聚簇索引指数据行的物理顺序与列值(一般为主键的那列)的逻辑顺序相同,一个表中只能拥有一个聚簇索引。
非聚集索引(非聚簇索引):该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。
c、hash索引与B树索引
hash索引࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值