您的位置:首页 > 财经 > 金融 > 广告营销网站_企业网站公司单位有哪些_推特是谁的公司_今天的新闻是什么

广告营销网站_企业网站公司单位有哪些_推特是谁的公司_今天的新闻是什么

2024/10/31 7:28:41 来源:https://blog.csdn.net/m0_74331272/article/details/143168306  浏览:    关键词:广告营销网站_企业网站公司单位有哪些_推特是谁的公司_今天的新闻是什么
广告营销网站_企业网站公司单位有哪些_推特是谁的公司_今天的新闻是什么
1. Decomposition Storage Model (DSM)

中文:分解存储模型
解释:在 DSM 模型中,数据库管理系统 (DBMS) 将每个属性(列)的所有元组数据按列连续存储在数据块中。因此,每个数据块只包含表中某个特定列的所有值,而不是像 NSM 那样按行存储所有列。

  • 这种模型也被称为列存储模型(Column Store),与行存储模型(NSM)相对。
2. 适用于 OLAP 工作负载
  • 特点:DSM 模型非常适合 OLAP(联机分析处理)类型的工作负载,因为 OLAP 查询通常需要扫描大量数据,但只涉及表中的少数几个属性(列)。在 DSM 中,查询只需加载所需的列,而无需加载整个行的数据,这大大减少了不必要的 I/O 操作。
3. DBMS 负责组合/拆分元组属性
  • 组合/拆分元组:由于 DSM 将每个属性(列)存储在独立的存储块中,当 DBMS 需要访问或处理整个元组(如插入或更新数据)时,它需要从多个列数据块中组合这些属性。在写入时,DBMS 则需将一个元组的属性拆分开,并分别存储在相应的列数据块中。
4. DSM 的优势与劣势
  • 优势

    • 高效的 OLAP 查询:由于 DSM 只加载所需的列,对于那些只需要少量列的查询,它能显著减少 I/O 开销和内存占用。这在数据分析或聚合查询中非常有用。
    • 良好的压缩效率:由于相同列中的数据往往具有相似的值或分布特性(如某个列中大多数都是相同或相近的数字),DSM 可以有效应用压缩算法,进一步减少存储空间和加快查询性能。
  • 劣势

    • 插入、更新和删除效率低:因为元组的每个属性分散存储在不同的列中,每次插入、更新或删除时,DBMS 需要跨多个存储块执行操作,这会导致较高的操作开销。
    • 需要更多的内存管理和缓存机制:由于 DSM 在读取整个元组时需要组合多个列,DBMS 需要额外的缓存和内存管理机制,以提高组合数据时的效率。

关键知识点:

  1. 列存储模型:DSM 是一种按列存储数据的模型,适合需要扫描大量数据但只查询部分列的工作负载,如 OLAP。
  2. DBMS 的角色:在 DSM 中,DBMS 负责在读取时将分散在不同列中的属性组合起来,写入时则需将属性拆分存储。
  3. 适用场景:DSM 更适合OLAP 工作负载,如数据分析和聚合查询。

DSM: Variable-Length Data(DSM中的可变长度数据处理)

Decomposition Storage Model (DSM) 中,处理可变长度数据(如 VARCHAR 字段)存在一定的挑战。以下是 DSM 对可变长度数据处理的常见问题与解决方法:

1. 填充可变长度字段(Padding)的问题
  • 填充方法的低效性:为了将可变长度字段转化为固定长度,一种方法是通过填充(padding),即将较短的值用额外的空白或其他字符填充至一个固定长度。
    • 问题:这种做法虽然能使所有数据字段长度相同,但对于大属性(如长文本或字符串)而言,这种方法会浪费大量存储空间,因为需要为短的值填充多余的空间。这在存储效率和访问速度上都会造成额外的负担,尤其是在处理大规模数据时。
2. 更好的解决方案:字典压缩
  • 字典压缩(Dictionary Compression):一种更有效的处理可变长度字段的方法是使用字典压缩。字典压缩的基本思想是将重复出现的可变长度数据(例如字符串)转换为固定长度的值,通常是 32 位整数。

  • 如何工作

    • 首先,系统会创建一个字典,其中包含表中所有唯一的可变长度值(例如,所有可能的字符串)。
    • 然后,在存储这些可变长度值时,不再直接存储字符串本身,而是存储该字符串在字典中的索引值。这些索引值通常是固定长度的整数(如 32 位整数)。
  • 优点

    • 减少存储空间:字典压缩能够显著减少存储空间,尤其是当某些可变长度的值重复出现时。将每个可变长度值替换为一个固定长度的整数可以提高存储和查询的效率。
    • 提高查询效率:由于每个值都被转换成固定长度的整数,系统可以更高效地进行索引和比较操作,进一步优化查询速度。
    • 减少 I/O 操作:字典压缩后的数据占用更少的存储空间,因此在查询时需要加载的数据量减少,进而减少了磁盘 I/O。
3. 示例
  • 例如,在某一列 Country 中,可能有很多用户的国家都是 "USA" 或 "Canada"。通过字典压缩,可以将 "USA" 替换为字典中的一个索引值 1,将 "Canada" 替换为 2,这样在存储时只需要存储 12,而不是完整的字符串。这极大地减少了存储空间的使用。
4. 限制和注意事项
  • 字典大小:字典的大小会影响压缩的效果。如果表中的唯一值过多,字典会变得很大,进而影响性能。
  • 动态更新:当有新的可变长度值出现时,字典需要动态更新,因此对于频繁插入新数据的系统,字典压缩可能带来一些额外的维护开销。

Decomposition Storage Model (DSM) 的优缺点总结

优点:
  1. 减少查询时的 I/O 开销

    • 解释:DSM 模型按列存储数据,因此数据库管理系统(DBMS)在执行查询时只需读取相关的列,而不需要读取整个行的数据。这极大地减少了不必要的数据读取,特别是在只查询部分列的情况下(如 OLAP 查询)。
    • 优势:减少了磁盘 I/O 开销,从而提高查询效率。
  2. 更快的查询处理

    • 解释:由于 DSM 按列存储,数据具有更高的内存局部性。相似类型的数据(如同一列的值)存储在一起,这使得系统在处理查询时能够更好地利用 CPU 缓存,从而加速查询处理。
    • 缓存数据复用:相同类型的数据集中在一起,可以更高效地复用缓存中的数据,减少从磁盘读取的次数。
  3. 更好的数据压缩

    • 解释:DSM 的列存储方式使得每列中的数据具有相似的分布特性,这有助于应用高效的压缩算法。例如,同一列中可能存在大量重复或接近的数据,这种情况下可以使用字典压缩或其他算法来减少存储空间。
    • 优势:数据压缩不仅节省了存储空间,还可以减少查询时的数据传输量,从而进一步加快查询速度。
缺点:
  1. 对于点查询、插入、更新和删除操作较慢

    • 解释:由于 DSM 将数据按列存储,每个元组的属性在物理上是分散存储的。因此,DBMS 在执行点查询时需要从多个列中分别读取数据,并将它们重新组合起来(即拆分/拼接元组)。这会导致额外的计算和 I/O 操作。
    • 插入/更新:对于插入或更新操作,系统需要在多个列文件中分别插入或更新数据,这会增加复杂性和操作成本。删除操作同样需要在多个列中进行更新,效率较低。
  2. 元组拆分/拼接和重新组织带来的额外开销

    • 解释:由于元组的数据分散在不同列中,DBMS 必须在查询或更新时进行元组的拆分或拼接,这增加了系统的开销。这种操作在处理频繁的点查询(如 OLTP 系统)时尤其低效。

 

PAX Storage Model (PAX 存储模型) 中文解释及相关知识点

1. PAX Storage Model 概述
  • 中文名称:跨列分区存储模型(Partition Attributes Across,简称 PAX)。
  • 定义:PAX 是一种混合存储模型,它结合了行存储(NSM)列存储(DSM)的优点,在数据库页面内部对属性进行垂直分区。这意味着,PAX 在同一个页面内将每个元组的属性按照列的方式存储,但多个元组依然紧凑地存储在一起。
2. PAX 的存储方式
  • 垂直分区:在 PAX 模型中,一个页面的属性是按照列来存储的,每个属性(列)占用页面内的一部分区域。这种方式在每个数据页面内提供了类似于列存储的高效数据访问,同时保持了与行存储类似的局部性。
    • NSM 的空间局部性优势:行存储模型可以更好地利用空间局部性,因为一行的数据存储在同一个物理位置。
    • DSM 的列访问效率优势:列存储可以更高效地读取某些特定的列,适合扫描大量数据的查询。
3. PAX 的目标
  • 结合行存储和列存储的优点:PAX 的设计目标是结合列存储的快速处理优势行存储的空间局部性优势,实现最佳的性能平衡。具体来说:
    • 列存储的快速处理:PAX 使得读取特定列的效率接近列存储,因为每个页面内部已经按照列分区存储。对于分析型查询(如 OLAP),PAX 可以显著减少不必要的数据读取。
    • 行存储的空间局部性:由于 PAX 依然保留了每个页面内元组之间的紧密存储,系统在需要访问整个元组时(如 OLTP 查询)能够保持较好的空间局部性,减少磁盘 I/O 操作。
4. PAX 在实际系统中的应用
  • 实际应用:PAX 模型被许多现代的列存储格式所采用,例如 Apache ParquetORC(Optimized Row Columnar)。这些格式被广泛应用于大数据处理和分布式存储系统中,如 Apache Hadoop、Apache Spark 等。这些格式能够在大数据查询中提供高效的读写性能,并支持复杂的分析性查询。
5. PAX 的优点
  • 快速查询处理:由于每个页面内部的属性是按列存储的,PAX 提供了类似于列存储的快速查询处理能力。特别是对于只涉及部分列的查询,系统可以快速读取所需的列,减少不必要的 I/O 开销。
  • 更好的缓存利用:PAX 在一个页面内将列分区存储,因此在读取时能够更好地利用缓存,提高内存局部性,减少缓存未命中。
  • 行存储的局部性优势:与纯列存储相比,PAX 仍然保留了行存储的空间局部性。当需要访问整个元组时,所有相关的数据依然存储在相对较近的物理位置上,减少了读取的开销。
6. PAX 的缺点
  • 页面内复杂性增加:由于每个页面既要支持行存储的局部性,又要支持列存储的高效列访问,PAX 页面内部的布局和管理变得更加复杂。
  • 元数据开销:PAX 模型需要额外的元数据来管理页面内部的分区和列布局。这些元数据在一定程度上增加了存储和计算的开销。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com