目录
一、索引的介绍
二、索引的分类
三、索引的创建与删除
一、索引的介绍
索引:是创建在数据库表中,是对数据库表中的一列或者多列的值进行排序的一种结果。
作用:提高查询效率(B树 / 哈希结构)
索引优点:
提高查询效率
索引缺点:
索引并非越多越好,过多的索引会导致CPU使用率降低,由于数据的改动会引起索引文件的改动,过多的索引会引起磁盘I/O频繁,造成CPU负荷太重。
(创建一个的索引,是以文件的形式存储的,用这个索引,先要把对应的索引的文件从磁盘加载到内存上,从内存上先读索引,通过索引找数据。如果索引越多,那么创建文件就越多,这是除了数据本身,需要额外占用的空间,索引的读取是需要 磁盘与内存的一个交互,是一个IO的过程,索引越多,交互越频繁,对系统性能有所影响)
索引是数据的目录,能快速定位数据的位置。
MYD : 数据 MYI : 索引 (数据结构)
索引是有代价的,提高了查询速度,降低了增,删,改的速度。(目录会相应改变)
一般在查询比较频繁的列上加,重复度低的列加,效果好。
比如,身份证号加,好。男女性别,加,意义不大。
二、索引的分类
普通索引:
没有任何限制条件,可以给任意类型的字段创建普通索引
唯一性索引:
使用 unique 修饰的字段,值不能重复,主键索引隶属于唯一性索引
主键索引:
使用 primary key 修饰的字段会自动创建索引 (InnoDB存储引擎)
单列索引:
在一个字段上创建索引
多列索引:
在表的多个字段上创建索引,把两列或多列的值看成一个整体,然后建立索引
全文索引:
使用 fulltext 参数可以设置全文索引,只支持char、varchar、text 类型的字段上,
常用于数据量比较大的字符串类型上,可以提高查询速度;只有MyIsam存储引擎支持
三、索引的创建与删除