在 MySQL 中,索引是一种帮助存储引擎快速获取数据的数据结构,形象的说就是索引是数据的目录。它一般是以包含索引键值和一个指向索引键值对应数据记录物理地址的指针的节点的集合的清单的形式存在。通过使用索引, MySQL 可以在不需要扫描整个表的情况下快速找到与查询条件匹配的记录。
1、MySQL 索引的介绍
1.1、索引目的
索引的目的在于提高查询效率,可以类比字典,比如当我们要查 “mysql” 这个单词,我们肯定需要定位到 ‘m’ 字母,然后从下往下找到 ‘y’ 字母,再找到剩下的 “sql”。如果没有索引,那么我们可能需要把所有单词看一遍才能找到想要的。
在 MySQL 中,索引是一种帮助存储引擎快速获取数据的数据结构,形象的说就是索引是数据的目录。它一般是以包含索引键值和一个指向索引键值对应数据记录物理地址的指针的节点的集合的清单的形式存在。通过使用索引, MySQL 可以在不需要扫描整个表的情况下快速找到与查询条件匹配的记录。
1.2、索引原理
在 MySQL 索引设计中,核心目标是有效平衡数据检索的速度与存储效率。就像图书目录帮助我们快速找到特定章节,MySQL索引使数据库能迅速定位数据。但数据库的挑战更为复杂,因为它需要处理各种查询类型,如等值查询、范围查询和模糊查询等。
为了有效平衡数据检索速度与存储效率,MySQL 通过其 InnoDB 存储引擎采取了以下具体措施:
-
<