gpt4 book ai didi

sql-server - 关于行存储数据页概念,聚集列存储索引和非聚集列存储索引有什么区别

转载 作者:行者123 更新时间:2023-12-05 05:10:31 25 4
gpt4 key购买 nike

  1. 基于行的聚集索引中:整个表数据(所有列)按聚集索引列排序。每个页面包含特定数量的行和所有列。

  2. 基于行的非聚集索引 - 创建了一个数据结构来保存索引列。索引列的每个 都包含该列的行值,并且每一行都指向(另一页)聚簇索引表键行或堆行(如果不存在聚簇索引)以供休息的数据。

我理解 columnstore index 的概念 - 在存在行组的意义上。每个行组包含表中每一列的一个列段(压缩),并且有一个增量存储来保存插入/更新,直到调用下一个元组移动进程。基于行存储索引(page)的上述两点,请告诉我在聚集和非聚集列存储索引的情况下它是如何工作的。

示例 - 在 Columnstore 非聚集索引存储的情况下,它在概念上是否与行存储非聚集索引相同 - 即 - 索引列的单独页面,其值指向堆或聚集索引键。

最佳答案

在比较行存储和列存储时,术语聚集表示所有列,非聚集表示某些列(除非包含所有列)。行存储/列存储组织的不同架构之间没有其他相似之处。我个人在提及列存储时甚至根本不使用索引这个词,因为该结构针对扫描而不是查找进行了优化,并且经常导致混淆。

列存储索引段,无论是否聚集,本质上只是存储在页面/范围中的压缩数据 block 。行存储,OTOH,每行都有一个记录结构,以容纳不同类型和可空性的多个列,这就是为什么它们不像列存储数据那样压缩。

关于sql-server - 关于行存储数据页概念,聚集列存储索引和非聚集列存储索引有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56560205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com