索引的本质:索引是帮助MySQL高效获取数据的数据结构,本质就是数据结构。
索引类型包括:
1.普通索引
这是最基本的索引,没有任何的限制
2.唯一索引
他与前面的普通索引类似,不同的地方就是,索引列的值必须是唯一的,但允许有空值,如果是组合索引,则列值的组合必须是唯一的。
3.主键索引
他是一种特殊的唯一索引,不允许有空值,一般是在建表的时候同时创建上主键索引。一个表只能有一个主键。
4.组合索引
为了进一步的榨取MySQL的效率,就要考虑组合索引,就是将多个字段加到一个索引里面。
什么时候使用到索引?
一般来说,在where和join出现的列需要建立索引,但也不是完全如此,因为MySQL只对<,<=,=,>,>=,between ,in,以及某些时候的like才会使用索引。
刚才提到有些时候like也需要建立索引,因为在以通配符%和_开头做查询时,MySQL不会使用索引。