1、索引是什么:索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。就好比创建了一个目录。
2、索引的目的是:快速查询,对主键的约束行为。
3、怎么创建索引:index 索引名字(列名)
怎么在创建表之后添加索引:create index 索引名字 on 表名(列名)
添加唯一索引:create unique index 索引名字 on 表名(列名)
删除索引:drop index 索引名 on 表名(列名)
删除唯一索引:drop unique index 索引名 on 表名(列名)
4、分类都有那些?
主键索引、唯一索引、普通索引、联合索引
索引根据搜索引擎分类:hash索引、btree索引(二分叉算法)
设置不设置索引区别是什么?
不设置:从上往下依次查找(慢)
设置:生成额外索引文件,并且记录当前列表中的地址
5、创建索引的时候要知道:
创建一个索引,提高了查找效率,但是会牺牲一部分储存空间,在数据特别多的时候需要加索引、会加大存储磁盘空间的开销、有时候要设置最短索引、
6、
创建索引
如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
字段类型如果不是字符串,可以不填写长度部分
7、索引选择原则
较频繁的作为查询条件的字段应该创建索引
唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
更新非常频繁的字段不适合创建索引
不会出现在 WHERE 子句中的字段不该创建索引