什么是索引?
索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此定位查询数据。对于索引,会保存在额外的文件中。索引是帮助MySQL高效获取数
据的数据结构。
有哪些索引?
从存储结构.上来划分: BTree索引,hash索引,full-index全文索引, R -Tree索引。
从应用层次来分:普通索引,唯一一索引,复合索引。
从数据的物理顺序和键值逻辑顺序关系分为:聚集索引,非聚集索引。
平时讲的索引类型一般是指在应用层次的划分:
普通索引:即一个索引只包含单个列,一个表可以有多个单列索引。
复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合
并。
唯一-索引:索引列的值必须唯一-,但允许有空值。
索引的优缺点?
优点:
1.加快了数据的检索速度。
2.创建唯一 -性索引,保证数据库表中每一-行数据的唯一-性。
3.加快表与表之间的连接。
4.在使用分组和排序子句进行数据检索时,可以显著减少查询中的分组和排序
的时间。
缺点:
1.索引需要占物理空间。除了数据表占数据空间之外,每个索引还要占一-定的
物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
2.当对表中的数据进行增加,删除和修改的时候,索引也要动态的维护,降低
了数据的维护速度。
3.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
什么时候适合建立索引?
1.主键自动建立唯一索引。
2.频繁作为查询条件的字段应该创建索引。
3.查询 与其他表关联的字段,外键关系建立索引。
4.单键,组合索引的选择问题,组合索引性价比更高。
5.查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。
6.查询中做统计数据的时候,通常会对该字段进行一种数据的汇总统计,在分
组查询的时候也是一- 样的意思,这个时候,建立建立索引。