聚集索引和非聚集索引的区别
1个回答
展开全部
聚簇索引是将索引和整条记录存放在一起,找到索引就找到了记录。非聚簇索引只存储索引字段和记录所在的位置,通过索引找到记录所在的位置,然后再根据记录所在位置去获取记录。
一般来讲一堆数据记录最多只能有一个聚簇索引,但可以有很多非聚簇索引。
两者的优缺点对比
聚簇索引的查找记录要比非聚簇索引块,因为聚簇索引查找到索引就查找到了数据位置,而非聚簇索引查找到索引之后,根据记录的数据地址,再去查找数据。
一个数据表只能有一个聚簇索引,但可以有多个非聚簇索引。
聚簇索引和非聚簇索引都可以加快查询速度,但同时也都对写入速度会有影响;聚簇索引对写入的速度影响更大一些。
两者使用场景
InnoDB的主键使用的都是聚簇索引,而MyASM无论是主键索引还是二级索引,使用的都是非聚簇索引。
聚集索引插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入),查询数据比非聚集数据的速度快。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询