mysql索引基础入门,一篇讲清楚
一.索引
1. 什么是索引
先来带各位小伙伴了解下索引的好处是什么呢?
那肯定是查询数据块!
通过索引可以快速的查询到想要的数据。MySQL数据库中的索引其实就是一种可以快速获取数据的一种数据结构。在表中除了表中的数据外,数据库系统还维护着满足特定查找算法的数据结构,这种数据结构以某种特定的方式指向数据,这种数据结构就是索引啦。
2. 索引的分类
按照功能分类:
- 普通索引: 最基本的索引,它没有任何限制。
- 唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值组合必须唯一。
- 主键索引:一种特殊的唯一索引,不允许有空值。一般在建表时同时创建主键索引。
- 组合索引:顾名思义,就是将单列索引进行组合。
- 外键索引:只有InnoDB引擎支持外键索引,用来保证数据的一致性、完整性和实现级联操作。
- 全文索引:快速匹配全部文档的方式。InnoDB引擎5.6版本后才支持全文索引。MEMORY引擎不支持。
按数据结构分类:
- B+Tree索引 :MySQL使用最频繁的一个索引数据结构,是InnoDB和MyISAM存储引擎默认的索引类型。
- Hash索引 : MySQL中Memory存储引擎默认支持的索引类型。
3. 索引的操作
3.1数据准备
下面我们一起来为演示索引准备一下表结构和数据:

3.2创建索引:
下面是创建索引的语法,我们可以一起来试一试

注意:如果一个表中有一列是主键,那么就会默认为其创建主键索引!(主键列不需要单独创建索引)。
举个栗子:

3.3查看索引
创建完索引后可以进行查看索引,如下:


3.4删除索引
最后是删除索引语法和案例:


4. 索引效率的测试
下面是创建product商品表,并添加100万条数据做测试。

二. 结语
最后在这里对本文核心要点进行总结:
- 索引是提高查询速度的特别有效的工具,建议熟练掌握。
- 请记住各种不同类型的索引,在不同的业务场景选择合适的索引类型使用。
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36