- 索引的目的在于提高查询效率,可以类比字典。
1. 请问索引是什么,多加索引好吗?
- 唯一索引unique,就是索引列中的值必须是唯一的,但是允许出现空值。这种索引一般用来保证数据的唯一性,比如保存账户信息的表,每个账户的 ID 必须保证唯一,如果重复插入相同的账户 ID 时 MySQL 返回异常。
- 主键索引paimary key是一种特殊的唯一索引,但是它不允许出现空值。
- 普通索引,与唯一索引不同,它允许索引列中存在相同的值。例如学生的成绩表,各个学科的分数是允许重复的,就可以使用普通索引。
- 联合索引,就是由多个列共同组成的索引。 一个表中含有多个单列的索引并不是联合索引,联合索引是对多个列字段按顺序共同组成一个索引。应用联合索引时需要注意最左原则,就是 where 查询条件中的字段必须与索引字段从左到右进行匹配。比如,一个用户信息表,用姓名和年龄组成了联合索引,如果查询条件是“姓名等于张三“,那么满足最左原则;如果查询条件是“年龄大于 20“,由于索引中最左的字段是姓名不是年龄,所以不能使用这个索引。
- 全文索引,前面提到过MyISAM