MYSQL索引的概念

一、什么是索引?

1、索引是帮助MYSQL高效获取数据的数据结构;

2、索引在存储引擎中实现,每种存储引擎的索引都不一定完全相同,每种存储引擎也不一定支持所有的索引类型;

MYSQL索引的概念_第1张图片
二叉树查找算法

二、索引的分类

1、普通索引和唯一索引

普通索引是MYSQl的基本索引类型

唯一索引对应列的值必须唯一,不允许重复,但允许空值

如果是组合索引,则列值的组合必须唯一

主键索引是一种特殊的唯一索引(这句话正确但是不准确),不允许有空值

2、单列索引和组合索引

单列索引指只包含一个列的索引,一个表中可以有多个单列索引

组合索引指表的多个字段组合上创建的索引。循环做前缀集合。

3、全文索引

FYLLTEXT类型索引,可以在char、varchar或者text类型的列上创建

仅MYISAM引擎支持

4、空间索引

对空间数据类型的字段建立的索引

三、索引设计原则

1、索引并非越多越好

2、数据量不多不需要建索引

3、列中的值变化不多也不需要建索引

4、经常排序和分组的数据列要建立索引

5、唯一性约束对应使用唯一性索引

你可能感兴趣的:(MYSQL索引的概念)