Mysql笔记-索引

索引分类:

单值索引:一个索引只包含一个列,一个表可以有多个单值索引

唯一索引:索引列的值必须唯一,但允许空值

复合索引:一个索引包含多列

 

索引语法:

CREATE [UNIQUE] INDEX indexName ON tableName(column1,column2.....)    # 创建索引

ALTER tableName ADD [UNIQUE] INDEX [indexName] ON (column1,column2...)  # 创建索引

DROP INDEX [indexName] ON tableName    # 删除索引

SHOW INDEX FROM tableName        # 查看索引

 

索引结构:

B+树:3层的b+树可以表示上百万数据,所以上百万的数据查找只需要3次IO,性能提高将是巨大的,如果没有索引,每个数据项都要发生一次IO,那么总共需要上百万次IO。

还有Hash等结构,后续不全

 

哪些字段应该创建索引:

主键(自动创建唯一索引)

频繁作为查询条件的字段

用于关联表的字段

排序字段

查询中统计或分组的字段

 

覆盖索引:也就是索引覆盖

查询数据时直接从索引中读取数据,不需要读取数据行。也就是查询列被所建的索引覆盖

你可能感兴趣的:(Mysql笔记-索引)