一张表的索引,就是给表中的某个字段或某些字段建立一张单独的表,就像是书本的目录样的,其目的是提高表的查询速度。当查询条件里的字段设置了索引的时候,一般这个查询就会走索引,从而不会发生全表扫描,就提升了查询的速度。
它的缺点是,建立的索引表可能比这个表所占的物理空间都大。如果这个表还平凡的进行批量的插入,更新操作,还会因为这个表有索引而减缓了这些批处理操作。
索引可以分为:单字段索引、唯一索引和组合索引。唯一索引,需要满足这个列的值是唯一的,不重复的,再一个就是不允许有null值。组合索引一般是在where里的条件频繁的有多个字段的时候,就用组合索引,把两个或两个以上的字段建成索引,一般都是字段限制性高的,重复度低的放在首位。
索引的使用场景:
表里数据多。
where条件里的字段重复性低,也就是where条件里的字段不会返回表里的大量数据。
经常在order by 和group by后出现的字段。
大量唯一值的字段。
不应该对包含大量null值得字段建立索引。
经常被操作得字段不应建立索引。