索引的分类数据库
主键索引:某一个属性组能惟一标识一条记录,主键索引只能有一个性能
惟一索引:避免同一个表中某数据列中的值重复,惟一索引可有多个spa
常规索引:快速定位特定数据,应加在查询条件的字段,不易添加太多常规索引,影响数据的插入,删除和修改操做.net
复合索引:指多个字段上建立的索引,只有复合索引的第一个字段出如今查询条件中,该索引才可能被使用,所以将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的做用blog
关于汇集索引和非汇集索引:http://www.javashuo.com/article/p-obekxtrg-mc.html排序
索引的优势索引
① 经过建立索引,能够在查询的过程当中,提升系统的性能get
② 经过建立惟一性索引,能够保证数据库表中每一行数据的惟一性it
③ 在使用分组和排序子句进行数据检索时,能够减小查询中分组和排序的时间搜索
索引的缺点
① 建立索引和维护索引要耗费时间,并且时间随着数据量的增长而增大
② 索引须要占用物理空间,若是要创建聚簇索引,所须要的空间会更大
③ 在对表中的数据进行增长删除和修改时须要耗费较多的时间,由于索引也要动态地维护
应该在哪些列上建立索引
① 常常须要搜索的列上
② 做为主键的列上
③ 常常用在链接的列上,这些列主要是一些外键,能够加快链接的速度
④ 常常须要根据范围进行搜索的列上
⑤ 常常须要排序的列上
⑥ 常常使用在where子句上面的列上
不该该在哪些列上建立索引
① 查询中不多用到的列
② 对于那些具备不多数据值的列.好比人事表的性别列,bit数据类型的列
③ 对于那些定义为text,image的列.由于这些列的数据量至关大
④ 当对修改性能的要求远远大于搜索性能时.由于当增长索引时,会提升搜索性能,可是会下降修改性能