暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

列存储表

小梨子 2024-08-16
163

列存储表

列存储表的基本概念

数据库列存储表(Column-Based Table)是一种特殊的数据存储方式,它不同于传统的行存储表(Row-Based Table),后者以行为单位存储数据,而列存储表则以列为单位进行数据的存储。列存储表将数据按列组织,每一列的数据在存储介质中以连续存储形式存在。这种存储方式使得相同类型的数据聚集在一起,便于进行特定的数据处理和分析操作。

列存储表的优势

  1. 查询性能提升:由于数据按列存储,查询时只需访问涉及到的列,大幅减少了磁盘I/O操作,提高了查询速度。尤其适用于需要频繁进行聚合统计、过滤等操作的场景。
  2. 数据压缩效率高:同一列中的数据类型相同,数据重复率高,因此数据压缩算法能够更有效地工作,减少存储空间的需求。
  3. 处理大数据集能力强:在处理大规模数据集时,列存储表能够显著提高数据加载、查询和分析的效率,适用于数据仓库、商业智能等场景。

列存储表的缺点

  1. 写入操作低效:插入新行成本高,由于列存储将相同列的值存储在一起,插入新行需要将该行的所有列插入到对应的列族中。这不仅需要为每个新行分配一个新的行标识符,还需要处理完整的列集,从而增加了插入操作的开销。
  2. 更新操作复杂:更新列存储表中的数据同样低效,尤其是当需要更新整列数据时。因为每次更改都需要在对应的列族中逐一重组数据,这可能涉及大量的数据移动和重组操作,从而影响性能。
  3. 更新成本高且空间回收复杂:在列存储表中更新或删除数据后,磁盘空间不会自动释放。为了回收空间,通常需要重建列存储索引,这是一个IO密集型的操作,可能进一步影响数据库性能。
  4. 索引和查询限制:列存储表通常限制了表上可以创建的索引类型。对于需要多索引支持的复杂查询场景,列存储表可能不是最佳选择。
  5. 查询限制:由于列存储表的数据组织方式,它们可能不支持某些类型的查询操作,如关联查询。此外,列存储表通常不支持游标和触发器,这进一步限制了其应用场景。
  6. 数据类型支持有限:列存储表可能不支持某些大型数据类型,如image、text、varchar(max)、xml等。这限制了列存储表在需要存储大型文本或二进制数据场景中的应用。
  7. 存储开销增加:在列存储表中,每个列都有其自己的文件,且需要存储列名信息。这意味着与行存储相比,列存储可能需要更多的存储空间来存储重复的列名信息。
  8. 并发性能受限:由于列存储表在写入操作上的低效性,当多个用户或进程同时尝试写入数据时,可能会遇到性能瓶颈。此外,更新操作可能需要锁定整个表或列族,从而降低并发性能。

列存储表的适用场景

  1. 数据仓库和商业智能:需要处理大量历史数据并进行复杂分析的场景,列存储表能够显著提升查询性能和数据压缩效率。
  2. 实时分析和大数据处理:在实时交易处理、物联网数据分析等需要快速响应的场景中,列存储表能够提供高效的数据处理能力。
  3. 需要高效压缩和存储的场景:如金融、电信等行业,需要存储大量用户数据或交易记录,列存储表能够有效降低存储成本。

达梦数据库列存储表的实现机制

列存储表(HUGE表)建立在HFS(Huge File System)存储机制上,使用HTS(HUGE TABLESPACE)表空间进行存储。

为每个HUGE表配备AUX辅助表来管理数据,辅助表中包含用于数据存取和统计分析的信息。

DM列存储表(HUGE表)的创建与使用

HUGE表需要建立在混合表空间上。

创建混合表空间

查看HUGE表空间

创建HUGE表

  1. HUGE TABLE为创建HUGE表
  2. STORAGE(STAT NONE)表示该列指定的区不做统计信息
  3. SECTION(65526)表示表的区为65526
  4. FILESIZE(64)表示文件大小为64M
  5. WITH DEITA 表示创建事务型表,WITHOUT DEITA 创建非事务型表
  6. ON TS1 存储在混合表空间TS1上
  7. COMPRESS LEVEL 9 FOR 'QUERY HIGH' (TNAME) 指定TNAME列压缩类型为高压缩率,压缩级别为9
  8. 如果创建HUGE表为事务型HUGE表,存在4个辅助表,为“表名$AUX”,“表名$RAUX”,“表名$DAUX”,“表名$UAUX”

  1. 默认不支持非事务型HUGE表,需要修改参数HUGE_WITH_DELTA

DML操作

DML操作跟普通表一样

总结

数据库列存储表作为一种高效的数据存储方式,在查询性能、数据压缩和处理大数据集等方面具有显著优势。它适用于数据仓库、商业智能、实时分析和大数据处理等场景。然而,列存储表也存在一些局限性。因此,在实际应用中需要根据具体需求选择合适的表类型。

https://eco.dameng.com/

最后修改时间:2024-08-16 11:22:07
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论