1>数据库中索引的结构是一种排序的数据结构。

2>数据库索引是通过B树和变形的B+树实现的。

3>什么情况下不适合建立索引?

  1.对于在查询过程中很少使用或参考的列,不应该创建索引。

  2.对于那些只有很少数据值的列,不应该创建索引。

  3.对于那些定义为image,text和bit数据类型的列,不应该创建索引。

  4.当修改性能远大于检索性能,不应该建立索引。

4>建立索引的优点?

  1.通过创建唯一性的索引,可以保证表中每一行数据的唯一性;

  2.可以大大加快表中数据的检索素的,这也是创建索引的主要原因;

  3.可以加快表与表之间的链接,特别是在实现表与表之间的参考完整性实现有特别的意义;

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

5>建立索引的缺点?

  1.创建索引和维护索引耗时,时间随着数据的增加而增加,成正比;

  2.索引需要占物理空间,除了数据表占数据空间外,每一个索引还要占一定的物理空间,如果建立聚簇索引,占得物理空间会更大;

  3.当对表中的数据进行维护时,对索引也要进行维护,这样就降低了数据的维护速度。

可以在数据库中建立三种索引:唯一索引,主键索引,聚集索引。

唯一索引(unique) :不允许任意两行具有相同索引值的索引。

主键索引(primary):数据表中经常有一列或多列组合,其职唯一标识要求主键中的每表中的每一行,则该列称为主键。个值都是唯一的,当查询时使用主键索引,他还允许对数据的快速访问。

聚集索引():表中行的物理顺序和表中的逻辑顺序相同。一个标志能有一个聚集索引。

如果一个索引不是聚集索引,则表中的数据的物理顺序和表中的逻辑顺序不相同。
主键与索引的区别如下:
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
唯一性索引列允许空值,而主键列不允许为空值。
主键列在创建时,已经默认不为空值 + 唯一索引了。
主键可以被其他表引用为外键,而唯一索引不能。
一个表最多只能创建一个主键,但可以创建多个唯一索引。
主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。
索引与缓存的区别:索引查,缓存不查