聚集索引和非聚集索引的区别?
聚集索引和非聚集索引的区别?
提示
题眼: 从磁盘IO效率来展开。
- 聚集索引的数据和索引放在一起,查询效率高;非聚集索引的索引和主键id放在一起,可能会导致回表,查询效率低。
- 聚集索引数据行的物理顺序和索引的逻辑顺序一样,查询效率高,但是当进行写操作时,数据行的物理顺序需要重新排列,导致性能下降;非聚集索引数据行的物理顺序和索引的逻辑顺序不一样,查询效率较低;进行写操作时,数据行的物理顺序不需要重新排序,性能较好
重要
参考答案:
非聚集索引他的数据和索引是分开存放的。当我们通过索引找到是数据所在的地址信息,还需要再去对应的地方拿到数据,这样会增加一次磁盘IO操作,而且这个IO大概率还是随机IO,效率很低。而聚集索引会把数据和索引放在一起,这样可以减少磁盘IO,提高查询效率。但是聚集索引本身需要更多的内存空间,而且它在进行写操作的时候需要对数据进行合并或者移动,性能会下降。
