首页 > 其他分享 >GaussDB的行存表与列存表的选择

GaussDB的行存表与列存表的选择

时间:2024-10-28 15:23:30浏览次数:6  
标签:存储 列存表 GaussDB EMPLOYEE 数据 行存表

一、前言
行存表和列存表是数据库中两种常见的数据存储方式。随着信息技术的飞速发展,数据存储和管理以及如何高效地存储和处理大量的数据已经成为了我们的一大挑战。

为了解决这个问题,行存表与列存表应运而生,它们以其独特的优势在各个场景得到了高效的应用。GaussDB支持行、列存储,本文将简单给大家介绍一下行列存储在GassuDB数据库中的应用。

二、行列存储表的概念
1、定义
行存表(Row-Based Table)是一种以行为单位进行数据的存储方式,每个记录都有一个唯一的行标识符。
列存表(Column-Based Table)是以列为单位进行数据的存储方式,每个记录都有一个唯一的列标识符。
2、优势与劣势
1)行存表的优势在于其结构简单,易于理解和操作。由于数据按照行进行存储,因此在查询某一行数据时,可以快速定位到目标位置。此外,行存表在进行数据的插入、删除和更新操作时,效率相对较高。然而,行存表的缺点也比较明显,那就是它不适合进行复杂的数据分析和处理,因为这种存储方式无法充分利用数据的关联性,导致查询性能较差。

在这里插入图片描述

2)列存表的优势在于其强大的查询功能和高效的存储效率。由于数据按照列进行存储,因此可以很容易地对某一列的数据进行聚合、分组等操作。此外,列存表还可以通过索引等技术提高查询性能。然而,列存表的缺点在于其结构复杂,不易于理解和操作。尤其是在进行数据的插入、删除和更新操作时,需要考虑到数据的完整性和一致性问题,因此操作起来相对繁琐。

在这里插入图片描述

三、行列存储表的逻辑介绍
GaussDB支持行、列存储,默认情况下,创建的表为行存储。行存储和列存储的差异如下图示。

1、行存表与行存表在硬盘上的存储方式
在基于行存储的数据库中,数据是按照行数据为基础逻辑存储单元进行存储的,一行中的数据在存储介质中以连续存储形式存在。

在这里插入图片描述

2、列存表与列存表在硬盘上的存储方式
在基于列式存储的数据库中,数据是按照列数据为基础逻辑存储单元进行存储的,一列中的数据在存储介质中以连续存储形式存在。

在这里插入图片描述

因此,行存表和列存表在硬盘上的存储方式也不同。对于行存表,每个记录都占用一个连续的空间块,而对于列存表,每个属性都有一个单独的空间块,所有属性值都存储在一个连续的空间块中。

四、行列存储表的使用建议和场景
一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。

1、行存表使用场景及GaussDB SQL示例
在这里插入图片描述

创建行存表,默认是创建的是行存表:

--创建行存表,默认是创建的是行存表
CREATE TABLE test_1
(
EMPLOYEE__ID CHAR(4),
EMPLOYEE_NAME VARCHAR2(10),
EMPLOYEE_SEX CHAR(2),
EMPLOYEE_AGE INT,
EMPLOYEE_SALARY MONEY
);

--查看已创建的表结构
SELECT * FROM PG_GET_TABLEDEF(‘test_1’)

在这里插入图片描述

2、列存表使用场景及GaussDB SQL示例

创建列存表,使用关键字:WITH (ORIENTATION = COLUMN)

--创建列存表,使用关键字:WITH (ORIENTATION = COLUMN)
CREATE TABLE test_2
(
EMPLOYEE__ID CHAR(4),
EMPLOYEE_NAME VARCHAR2(10),
EMPLOYEE_SEX CHAR(2),
EMPLOYEE_AGE INT,
EMPLOYEE_SALARY MONEY
)
WITH (ORIENTATION = COLUMN);

--查看已创建的表结构
SELECT * FROM PG_GET_TABLEDEF(‘test_2’)

五、小结
行存表和列存表各有优缺点,适用于不同的场景。GaussDB支持行列存储。行、列存储模型各有优劣,在实际应用中,我们需要根据具体的需求选择合适的存储方式,以实现高效的数据管理和分析。无论是行存表还是列存表,都是我们在探索数据世界道路上的重要工具,值得我们深入研究和掌握。

——结束

​https://support.huaweicloud.com/intl/zh-cn/gaussdb/index.html​

标签:存储,列存表,GaussDB,EMPLOYEE,数据,行存表
From: https://www.cnblogs.com/xiaoxu0211/p/18510714

相关文章

  • GaussDB火焰图分析
    问题描述CPU利用率是衡量系统负载和健康度的重要指标之一,系统在运行过程中时常发生CPU利用率高的情况。在分析性能问题时,可通过火焰图查看CPU耗时,了解瓶颈在哪里。问题现象部分sql执行速度不符合预期。告警慢sql告警。cpu使用率高告警。数据库整体运行慢。业务影响业务......
  • GaussDB OLTP 云数据库配套工具DAS
    一、前言传统的数据库管理软件,不仅需要下载安装、功能还比较单一,而且已经滞后于云服务的发展模式。华为GaussDB云数据库提供了配套的生态工具数据管理服务DAS。DAS通过与数据库内核的紧密结合,提供了数据库开发、运维、智能诊断一站式云上数据库管理平台,方便用户使用和运维华为......
  • 深度解读GaussDB逻辑解码技术原理
    本文分享自华为云社区《【GaussTech技术专栏】GaussDB逻辑解码技术原理》,作者:GaussDB数据库。1.背景随着国内各大行业数字化改造步伐的加快,异构数据库数据同步的需求场景越来越多。异构数据库同步,即将不同类型、不同结构的数据库之间的数据进行同步处理,以确保数据在不同数据库......
  • GaussDB数据库SQL系列-自定义函数
    一、前言华为云GaussDB数据库是一款高性能、高安全性的云原生数据库,在GaussDB中,自定义函数是一个不容忽视的重要功能。本文将简单介绍一下自定义函数在GaussDB中的使用场景、使用优缺点、示例及示例解析等,为读者提供指导与帮助。二、自定义函数(Function)概述在SQL中,自定义函数(Fu......
  • GaussDB: db2->gaussdb 函数转换
    一、db2->gaussdb函数转换问题描述:使用GaussDB替代DB2的方案,使用起来还是有些差别,做一下函数的映射转换。 DB2写法GaussDB改写语法日期函数days(OUTWORKDATE)EXTRACT(epochfromoutworkdate)/86400;EXTRACT(DAYFROM(OUTWORKDATE-DATE'0001-01-01'+......
  • 一图为你揭秘云数据库GaussDB管理平台亮点
    云数据库GaussDB管理平台(TPOPS)是一款即开即用、稳定可靠、管理便捷的数据库运维管理平台。通过该平台,用户可以快速部署安装GauSSDB,实现智能化运维,大幅度提升运维和管理效率。一图带你揭秘云数据库GaussDB管理平台亮点。 华为开发者空间,汇聚鸿蒙、昇腾、鲲鹏、GaussDB、欧拉等......
  • gaussdb 基础管理 数据库 表 用户 模式 权限 存储过程
    数据库database#创建数据库,指定字符集UTF8,缺省情况下新数据库将通过复制标准系统数据库template0来创建,且仅支持使用template0来创建。CREATEDATABASEdevdbENCODING'UTF8'template=template0;CREATEDATABASEtestdb;标识符的命名需要遵守如下规范:*标识符需要为......
  • Navicat Premium 17.1.3版本发布,原生支持华为云数据仓库GaussDB(DWS)
     近日,Navicat发布了一项重要更新,原生支持华为云数据仓库GaussDB(DWS)。这是Navicat支持的国内首个数据仓库产品,将为广大GaussDB(DWS)用户带来更多的便利。Navicat无缝对接GaussDB(DWS),让数据仓库的构建、查询、优化及维护变得更加直观和易于管理,助力企业轻松驾驭大数据时代的......
  • 技术解读GaussDB (for MySQL)流控机制
    本文分享自华为云社区《【华为云MySQL技术专栏】GaussDB(forMySQL)流控技术解读》,作者:GaussDB数据库。本文主要介绍GaussDB(forMySQL)在不同服务层次上是如何实现过载保护的,具体包括反馈式和主动平滑流控两种机制。1.背景介绍GaussDB(forMySQL)是存储计算分离架构的云......
  • 对GaussDB数据库和数据管理的简单介绍
    一、前言数据库与数据管理有着密切的关系,两者共同构成了一个完整的、可扩展的数据库管理系统。数据库是用于存储数据的系统,为数据提供了安全、可靠、可扩展和可管理的存储环境。随着信息技术的飞速发展,数据已经成为企业的核心资产之一。在这个数据驱动的时代,数据管理成为了企业......