高山_流水
海阔凭鱼跃,天高任鸟飞

1.定义:

  在关系数据库中,索引是一种单独的、物理的数对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

2.内部实现原理:

  数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树(B-tree)即平衡树

在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

3.优点: 

  第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

  第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

  第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

  第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

  第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

4.缺点:

  第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

  第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

  第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

5.包括:

  唯一索引、主键索引和聚集索引。 

  聚集索引也称为聚簇索引,在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引, 即如果存在聚集索引,就不能再指定CLUSTERED 关键字。
 
  索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。聚集索引更适用于对很少对基表进行增删改操作的情况。

6.创建方式:

  CREATE INDEX <索引的名字> ON tablename (列的列表);

7.mySql检查性能:

  explain select * from tab where group by order by

 

  

posted on 2017-03-30 11:34  高山_流水  阅读(253)  评论(0编辑  收藏  举报