目录

 

一、索引的介绍

二、索引的分类

三、索引的创建与删除


一、索引的介绍

索引:是创建在数据库表中,是对数据库表中的一列或者多列的值进行排序的一种结果。

作用:提高查询效率(B树 / 哈希结构)

索引优点:

提高查询效率

索引缺点:

索引并非越多越好,过多的索引会导致CPU使用率降低,由于数据的改动会引起索引文件的改动,过多的索引会引起磁盘I/O频繁,造成CPU负荷太重。

(创建一个的索引,是以文件的形式存储的,用这个索引,先要把对应的索引的文件从磁盘加载到内存上,从内存上先读索引,通过索引找数据。如果索引越多,那么创建文件就越多,这是除了数据本身,需要额外占用的空间,索引的读取是需要 磁盘与内存的一个交互,是一个IO的过程,索引越多,交互越频繁,对系统性能有所影响)

索引是数据的目录,能快速定位数据的位置。

MYD :   数据       MYI : 索引 (数据结构)

MySQL不能删除含有数据的字段 mysql为什么不能删除索引_多列

索引是有代价的,提高了查询速度,降低了增,删,改的速度。(目录会相应改变)

一般在查询比较频繁的列上加,重复度低的列加,效果好。

比如,身份证号加,好。男女性别,加,意义不大。

二、索引的分类

普通索引:

没有任何限制条件,可以给任意类型的字段创建普通索引

唯一性索引:

使用 unique 修饰的字段,值不能重复,主键索引隶属于唯一性索引

主键索引:

使用 primary key 修饰的字段会自动创建索引 (InnoDB存储引擎)

单列索引:

在一个字段上创建索引

多列索引:

在表的多个字段上创建索引,把两列或多列的值看成一个整体,然后建立索引

全文索引:

使用 fulltext 参数可以设置全文索引,只支持char、varchar、text 类型的字段上,

常用于数据量比较大的字符串类型上,可以提高查询速度;只有MyIsam存储引擎支持

三、索引的创建与删除

MySQL不能删除含有数据的字段 mysql为什么不能删除索引_数据_02