首先 数据库当中的表有两种组织方式,B树,和堆;
建立了聚集索引的表本身会以B树的结构排列;否则按照堆排列
不管哪一种方式,都可以在表上建立非聚集索引;非聚集索引是以B树结构排列。
索引 :
索引有两种 ,一种是聚集索引 ,一种是非聚集索引。
1. 聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。(因为表同时只能按一种方式物理排序)
2、聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续。
PS: 非聚集索引都是以B树的结构排列。
什么时候应该建立索引?
1、主键和外键
2、直接查询条件(Where)
3、查询中排序的字段(Order by)
4、分组统计的字段(Group by)
什么时候不应该建立索引?
表的记录很少
经常插入、删除、修改的表
数据重复且分布平均