-
当别人已在鸿蒙生态接单月入3万+,你还在Java内卷?当大模型重构IT岗位,传统运维正批量淘汰…体贴的深圳人社为您再次奉上信创技术/鸿蒙系统/麒麟系统等新一代信息应用技术生存技能大餐• 信创智算与大模型技术课程• 开源高斯数据库技术课程• 鸿蒙原生应用开发课程• 开源鸿蒙设备应用技术课程• 前沿 科技 国产系统应用 还等什么基于麒麟操作系统的信创基础软件适配迁移与运维课程 【理论授课、现场实战、组队攻坚】告别枯燥的理论推砌聘请行业专家担任讲师5门免费课程助你抢占信息技术高地,满级晋升!最重要的是全!免!费!咱不花一分钱就开启成长与蜕变的大门报名有啥要求?咋报名?快随我往下看吧!一、 报名条件报名学员需具有新一代电子信息应用技术相关的行业从业背景或具备相关专业背景,并满足以下条件之一即可:1.本市户籍人员;2.在本市正常缴交社会保险的人员;3.深圳市登记失业人员;4.在深圳市公共就业服务机构进行离校两年未就业实名登记的本市高校毕业生;5.本市高校或本市户籍在市外高校的毕业年度(指毕业时间在2025年1月1日至12月31日之间)毕业生(含技师学院高级工班、预备技师班)。温馨提示:(1)同一劳动者同一年度只能参加1次项目制培训哦。如果您已经参加2024年度项目制培训但未完成规定学时50%以上,很遗憾,那无法参加2025年度的项目制培训了哦。(2)同一劳动者同一年度内企业新型学徒制培训,学生学徒制培训、技培生学徒制培训只能参加一次,且均不能和项目制培训同时享受。等等先别急还没完!还有额外补贴!【额外补贴】如您满足以下条件之一:• 本市就业困难人员• 本市零就业家庭成员• 本市就业残疾人• 本市城市低保家庭成员• 本市毕业2年内的“两后生”中的农村学员• 本市求职就业的脱贫人员不仅可以免费学课程还可以再领500元的生活补贴金💴! 接下来咱们看一下具体学习内容吧!二、 学习内容以及报名方式 新一代电子信息应用技术项目制培训 指导单位:深圳市人力资源和社会保障局主办单位 :深圳市职业技能培训指导中心承办单位:深圳职业技术大学1、信创智算与大模型技术课程课程内容培训天数培训名额主要内容包括:1.基于昇腾平台的 DeepSeek 模型搭建与优化2.华为云昇腾算力支持下的私有场景大模型部署3.基于昇腾与 DeepSeek 的私有大模型自主训练4.电商场景下大模型的创新应用与拓展6天约300人 信创智算与大模型技术课程报名二维码及交流群(QQ群) 2、开源高斯数据库技术课程课程内容培训天数培训名额主要内容包括:1.高斯数据库安装与对象管理实操2.场景化高斯数据库实验探索3.数据库AI策略与技巧4.数据安全管理与防护6天约250人开源高斯数据库技术课程报名二维码及交流群(QQ群) 3、 鸿蒙原生应用开发课程课程内容培训天数培训名额主要内容包括:1.基于ArkTSUI框架搭建实训云平台2.鸿蒙原生办公签到系统开发3.基于Next版本开发实时社交软件联动DeepSeek实现聊天问答4.基于鸿蒙服务卡片开发音乐推荐软件5.鸿蒙原生健康服务检测软件开发6天约250人 鸿蒙原生应用开发课程报名二维码及交流群(QQ群) 4、 开源鸿蒙设备应用技术课程课程内容培训天数培训名额主要内容包括:1.OpenHarmony搭建与配置2.开源鸿蒙设备驱动开发和集成3.基于开源鸿蒙的HAL层开发4.基于开源鸿蒙的智能家居软硬件开发6天约250人 开源鸿蒙设备应用技术课程报名二维码及交流群(QQ群) 5、基于麒麟操作系统的信创基础软件适配迁移与运维课程课程内容培训天数培训名额主要内容包括:1.银河麒麟桌面操作系统 V10 的管理应用2.掌握适配测试基础及软硬件适配测试技能6天约250人 基于麒麟操作系统的信创基础软件适配迁移与运维课程报名二维码及交流群(QQ群) 三、成长与收获1.掌握实用技能,提高自身职业技能,增强就业竞争力,优化职业发展路径;2.培训考勤达标且考核通过将获得《深圳市职业技能提升培训合格证书》;3.可自行选考行业权威认证:HCIA-AI认证、HCIA-openGauss认证、HarmonyOS应用开发者认证、开放原子OpenHarmony人才认证、KYCA、KYCP认证(不含考证费)。四、班级设置l 7月29日-9月30日 开设日常精品班(周一到周六)开设周末精品班(周六或周日单日班)l 7月29日-10月20日开设周末精品班(周六或周日单日班)五、咨询与联络黄老师:13528095312(微信同号)周老师:0755-26019607咨询时间:工作日9:00- 18:00其他时间咨询联系QQ群工作人员六、培训地点深圳职业技术大学西丽湖园区(信息楼)建议绿色出行:深圳地铁5号线西丽地铁站F口步行800米。公交车站-深圳职业技术大学(西丽湖园区),线路包括M197、M182、M176、M492、高峰专线59、325、M535、M217、67、326等。 别再犹豫,抓住这个难得的机会,让自己在公益性培训中实现华丽转身!立即报名,开启你的成长之旅!
-
📰 GaussDB简介GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。高安全GaussDB拥有TOP级的商业数据库安全特性,能够满足政企和金融级客户的核心安全诉求。安全特性包括:数据动态脱敏,行级访问控制,密态计算。健全的工具与服务化能力GaussDB已经拥有华为云,商用服务化部署能力,同时支持DAS、DRS等生态工具。有效保障用户开发、运维、优化、监控、迁移等日常工作需要。全栈自研GaussDB基于鲲鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌。同时GaussDB能够基于硬件优势在底层不断进行优化,提升产品综合性能。开源生态GaussDB已经支持开源社区。🚀 领取免费版/购买付费版介绍和指引01 领取免费版GaussDB免费报名领取GaussDB在线试用版(2025年06月 21日 - 2025年 12月 31日),有1000个名额,数量有限。领取与使用方法见如下案例内容:华为开发者空间-GaussDB云数据库领取与使用指导02 购买付费版GaussDB购买GaussDB数据库实例可参考购买付费版GaussDB✍️ GaussDB数据库实操📚 01 GaussDB之基本SQL语法实践SQL是用于访问和处理数据库的标准计算机语言,SQL语言由用于处理数据库和数据库对象的命令和函数组成,GaussDB默认支持SQL:2016的大部分特性。GaussDB提供界面化工具DAS连接数据实例,执行SQL语句完成数据库用户、数据库、数据表以及记录的增删改查等SQL操作实践:基于开发者空间GaussDB数据库完成SQL基本语法实践 📚 02 基于GaussDB数据库PL/pgSQL的实践PLPGSQL是一种过程化SQL语言(Procedural Language/Postgres SQL),PL/pgSQL是PostgreSQL数据库对SQL扩展的高阶SQL。在普通SQL语句的使用上增加了编译语言的特点,所以PL/pgSQL就是把数据操作和查询语句组织在PL/pgSQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。通过实际操作,让大家深入了解如何利用 PL/pgSQL 开发并部署一个函数功能模块。在这个过程中,大家将学习到从函数创建、数据批量读取到SQL程序编写以及与触发器集成等一系列关键步骤,从而掌握 PL/pgSQL 的基本使用方法,体验其在应用开发中的优势。实践:GaussDB数据库之PL/pgSQL实践一本案例详细介绍了PL/pgSQL的变量,条件控制,循环控制,ERROR抓取,NULL语句,匿名块与存储过程等知识在GaussDB中的应用。实践:GaussDB数据库之PL/pgSQL实践二本实例详细介绍了PL/pgSQL的游标,自定义函数,触发器,信息打印,常用SQL在GaussDB中的实践。 📚 03 通过三方驱动连接GaussDB数据库完成数据开发(需要购买EIP)GaussDB支持通过JDBC、ODBC、libpq、Psycopg、Go、ecpg等接口来连接数据库并进行操作。Psycopg是一种用于执行SQL语句的PythonAPI,可以为GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg3是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配GaussDB数据类型。实践:在开发者空间使用gaussdb-python连接GaussDBODBC(Open Database Connectivity,开放数据库互连)是由Microsoft公司基于X/OPEN CLI提出的以C/C++语言来访问数据库的应用程序编程接口。它提供了一种统一的方法,让应用程序可以访问各种数据库管理系统(DBMS),而不用考虑具体的数据库类型或者操作系统平台。ODBC允许应用程序使用SQL来查询、插入、更新和删除数据库中的数据。应用程序通过ODBC提供的API与数据库进行交互,增强了应用程序的可移植性、扩展性和可维护性。实践:基于开发者空间编写ODBC应用程序操作GaussDB数据库 📚 04 基于GaussDB数据库实现业务场景的实践(需要购买EIP)GaussDB广泛用于金融、政府、电商等领域,能够支持各领域高并发、高可用等业务场景。Django是一个高级的Python Web应用框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。GaussDB数据库支持对接Django框架,作为Django WEB项目的数据库存取数据。实践:在华为开发者空间云开发环境部署Django与GaussDB对接的实践应用 📚 05 GaussDB之分区表和AI特性实践分区表在数据库中使用广泛,尤其在数据库大表中对数据拆分,分表等领域,利用分区把表数据划分多个不同数据文件,利用表空间可把不同分区的表数据分布在不同磁盘,可以充分利用磁盘I/O和数据文件并行读取,以分区方式优化索引起到查询性能提升(因为不同分区会使优化器对执行计划剪枝)。GaussDB开发并优化项目中业务应用的SQL语句等功能。在这个过程中,大家将学习到从AI函数的引用、AI功能的原理以及分析AI能力等一系列关键步骤,从而掌握 GaussDB-AI的基本使用方法,体验其在应用开发中的优势。实践:GaussDB之分区表的优化与应用本案例详细讲述了大数据量的表在查询时,针对查询条件和数据特征,给大表数据做物理上的分区存储,基于不同表空间,利用多磁盘IO并行读写数据,优化并提升性能。实践:GaussDB-AI特性之索引智能推荐本案例详细讲述了AI特性里的索引智能推荐功能,根据GaussDB提供的gs_index_advise()接口,根据实际的SQL执行计划,智能推荐出更好的索引并大大优化SQL性能。
-
购买实例登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,单击“购买数据库实例”。在创建实例页面,选择计费模式、填写实例名称、选择产品类型、数据库引擎版本、实例类型、部署形态等实例基本信息。计费模式:按需计费区域、项目:选择默认配置实例名称:自定义,命名为便于识别的名称产品类型:企业版数据库引擎版本:8.103实例类型:主备版部署形态:1主2备可用区:可用区一时区:选择默认配置选择实例规格。性能规格:独享型(1:4)、4 vCPUs | 16 GB存储类型:超高IO存储空间:40GB磁盘加密:不加密配置网络信息,选择默认配置即可。配置实例密码、企业项目信息。管理员密码:自定义,设置高强度密码,以提高安全性确认密码:和管理员密码相同企业项目:default其他参数使用默认配置单击“立即购买”,核对实例信息,单击“提交”。返回实例列表。当实例运行状态为“正常”时,表示实例创建完成。
-
DBeaver是一个通用的数据库客户端,可以通过配置不同驱动连接各种不同的数据库。本章介绍如何通过DBeaver连接GaussDB实例。步骤一:获取驱动包获取驱动包和驱动包校验包。根据不同版本的实例,下载对应版本的驱动包和驱动包校验包到本地任意目录校验驱动包。为了防止驱动包在传递过程或存储期间被恶意篡改,需要对驱动包进行校验,校验方法如下:使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。执行以下命令,获取驱动包的Hash值。certutil -hashfile {驱动包本地目录}{驱动包名} sha256{驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users{驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256将2.b获取到的Hash值和1中获取到的驱动包校验包的Hash值进行比较。若一致则通过校验。若不一致,请重新下载驱动包,重复2.a~2.c进行校验。解压驱动包,获取gsjdbc4.jar包。将1中获取到的驱动包解压到本地, 根据您需要连接的实例类型,进入驱动包对应类型目录下的任意一个操作系统目录,找到GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Jdbc.tar.gz包后进行解压,获取到gsjdbc4.jar包,放在本地任意目录下。例如:需要连接分布式版实例,您可以进入到GaussDB_driver\Distributed\Euler2.5_X86_64路径下,找到GaussDB-Kernel_503.1.0.SPC2300_Euler_64bit_Jdbc.tar.gz包进行解压,获取到gsjdbc4.jar包。说明:JDBC驱动包不区分操作系统和架构。因此,在获取gsjdbc4.jar包时,只需要关注实例类型即可。步骤二:获取DBeaver客户端安装包DBeaver官网提供了针对不同操作系统的客户端安装包,单击此处访问DBeaver官网下载系统对应的DBeaver客户端安装包并完成安装 。步骤三:创建新驱动打开DBeaver客户端。单击“数据库 > 驱动管理器”,打开驱动管理器界面。单击“新建”,打开创建新驱动界面。在“设置”页签中,正确输入驱动名称、类名、URL模板、默认端口、Default Database、Default User,选择驱动类型,单击“确定”创建驱动。在“库”页签中,单击添加文件,选择步骤一第3步中的gsjdbc4.jar。添加后驱动类为空,需要单击“找到类”,选择识别出来的驱动类。驱动类需要与“设置”页的“类名”一致。单击“确定”,驱动设置完成。步骤四:连接数据库在DBeaver客户端单击,打开创建连接界面。搜索步骤三中创建的驱动,选中驱动,单击“下一步”。点击放大输入主机IP地址,端口,数据库名,用户名和密码。单击“测试链接”。若弹框中显示“已连接”,则说明可正常连接,单击“确定”。单击“完成”,即可连接到数据库。在“数据库导航”栏可查看到连接的数据库信息。
-
华为GaussDB(DWS)的优势有哪些
-
Psort 索引cid:link_1 索引的利与弊cid:link_2GaussDB(DWS)查询提速cid:link_3PCK(partial cluster key)cid:link_4VACUUM的作用cid:link_5行存VACUUM主要做的三件事cid:link_6VACUUM FULL执行流程cid:link_7GaussDB(DWS) IO框架解析cid:link_8IO 管理框架:读取cid:link_9行存插入操作到提交的流程cid:link_10WAL(Write-Ahead Logging)cid:link_11列存的IO管理框架cid:link_0IO 管理读取过程cid:link_12GaussDB(DWS) IoT数仓解析cid:link_13时序数据库应用场景https://bbs.huaweicloud.com/forum/thread-0201189181473510046-1-1.html
-
典型时序数据库主要服务两类业务场景,应用性能监控(Application Performance Management, APM)和物联网(Internet of Things, IoT)。 商业零售:电商系统订单交易金额,支付金额数据,尚品库存,物流数据; 金融交易:股票交易系统持续记录股票价格,交易量等; 社会生活:智能电表会实时记录每个小时的用电量数据等; 工业领域:工业机器数据例如风力发电机,获取实时转速、风速数据、发电量数据等; 系统监控:IT基础设施的负载和资源使用率,DevOps监控数据、移动/Web应用程序事件流等; 环境监测:自然环境(如温度、空气、水文、风力等)的监测,科学测量结果等; 城市管理:城市交通的监测(车辆、人流、道路等); 自动驾驶:自动驾驶汽车持续收集所处环境中的变化数据等。
-
万物互联的时代,最不缺少的就是海量数据,爆炸性增长的数据能给我们带来什么价值,我们如何通过这些海量数据看清事物的本质,甚至能够预测事物的发展趋势,这些是我们面对的挑战和需要解决的问题。时序数据库是这个时代的产物,也不断驱动着这个世界向万物互联不断迈进。 随着5G技术的不断成熟,物联网技术得到了快速发展,万物互联的场景在我们身边也越来越触手可及。我们身边的电子设备变得越来越多,手机、电脑、智能手表、全屋智能、自动驾驶汽车等等,承载的信息量成倍增加,数以亿计的信息昼夜不停地描绘着这个世界。 物联网时代,每个物体每时每刻都在产生各种维度的数据信息,这些信息尽可能全面的刻画我们所生活的世界,这些采集到的数据信息,帮助我们更好的生活,不断改变我们的生活方式。例如当下非常火热的自动驾驶,需要在汽车上配备各种传感器,用以实时采集运行时汽车的各项监控数据,采集的维度包括:坐标、速度、方向、温度、功率等等。每辆汽车上的传感器每天采集数据的数量级可能达到TB级。 这些采集到的数据和时间强相关,采样时间间隔固定,描述了物体在历史时刻中测量数据的变化,我们将这种类型的数据统称为时间序列(Time Series)数据。我们将这些时序数据存储起来,这些海量数据不仅帮助我们了解物体的实时状态,通过多个维度的分析,更能够帮助数据使用者更好的指定策略,分析目标对象的趋势和规律等,甚至能够帮助我们预测不确定的未来。 我们将时序数据列做了以下三种分类: 1) Tag列:通常将表征数据源来源或者属性信息的列作为Tag列,该列的数值通常相对稳定,不随时间变化而变化; 2) Field列:一般将采样的维度作为数据列,因为该列的数据一般随时间变化而变化,存储各个指标的value; 3) Time列:表示采样时刻的时间戳。
-
读取过程: 根据where条件,做MIN/MAX过滤的谓词条件; 加载CUDesc; MIN/MAX过滤; 读取CU到CU Cache中; 解析并填充。 2) CacheMgr: 用来缓存CU到内存中,可以提高重复查询的性能。 3) CU的物理文件: CStore_1.0: 当前基本不怎么实用; CStore_2.0: 重整了CU的文件结构,避免列数过多导致文件结构复杂。列存的插入要分两种情况,少量的插入和大量的插入,列存主要是对大批量数据设计的,因此为了弥补小量插入的打包CU性能开销,设计了一个delta行存表,用来记录插入结果,可以减少膨胀和提升性能,最后定期的整理。列存的删除比较简单,如果是delta表,先从delta表中删除满足谓词条件的记录,然后在CUDesc表中更新待删除CU的delete_bitmap。行存列存的设计结构,以行存和列存为例对GaussDB(DWS)的IO方面的主要机制做了梳理。分别对行存和列存和IO的读写做了解释。行存和列存由于组织方式不同,适合不同的场景,GaussDB(DWS)现在也有HStore。解决了 CU上并发更新的锁冲突问题。
-
列存的存储单元为CU(CStore Unit); CU的大小为8k对齐; 适合大批量导入的场景; 同一列的CU存在一个新文件中,大于1GB时,切换到新文件中; 列存用一个CUDesc的行存表描述CU的相关信息,可以理解成为一个Toast表; CUDesc:行存表,记录CU的相关信息, 主要属性如下: col_id,cu_id: 第col_id 列,第cu_id个CU; min, max, row_count, size; cu_mode: information mask(RLE,LZ4,Delta表等); cu_pointer:指向每一个CU,记录delete bitmap; magic:和CU头部的magic相同,校验使用。 索引结构和行存无差别,同样以行存形式存储; C-Btree可以提升点查效率; 存储key->ctid(cu_id, offset); 过程: 根据B-tree索引找到ctid集合; 对集合进行批量排序(减少IO开 销 ); 在CUDesc找到对应的cu_id,根据offset找到数据。PSort 是一个聚簇索引,对索引进行排序,然后将排序后的索引和行号存入一个新的表,用单独的列存表存储。
-
非即时写入:WAL 记录首先写入 WAL 缓冲区,并不是立即写入硬盘。这是为了减少磁盘 I/O,优化性能。 定期写入:由后台线程 WAL Writer 负责定期将 WAL 缓冲区中的记录刷新到磁盘。 事务提交时确保写入: 事务在 COMMIT 时,必须确保该事务的所有 WAL 记录已经写入硬盘,从而保证事务的持久性; GuassDB(DWS) 通过 synchronous_commit 参数来保证事务提交的持久性; 当 synchronous_commit 为 on,提交事务会等待所有 WAL 记录写入后才返回成功; 用户在收到 COMMIT 命令的成功响应后,可以确信事务已经安全提交; 在系统故障的情况下,GaussDB(DWS) 的恢复机制会使用 WAL 来保证事务的完整性; 这个机制确保了用户在事务级别上的数据持久性,即使用户无法直观感知 WAL 的具体写入细节。CLOG(Commit Log)记录事务是否提交或回滚,而 WAL(Write-Ahead Logging)记录了事务的具体修改操作。两者的作用虽然相似,都是为了保证事务的持久性和数据库的恢复能力,但它们的设计和写入时机有所不同。 可能延迟写入:CLOG 记录事务的提交状态,可能不会在每次事务提交时立即写入硬盘。 由 Checkpointer 处理:CLOG 的写入通常在检查点时由 Checkpointer 或其他后台进程执行,确保所有已提交事务的 CLOG 记录被写入硬盘。
-
共享缓冲池(Shared Buffer Pool): 插入操作开始时,元组首先被写入内存中的共享缓冲池。这是所有后台进程共享的内存区域; WAL(Write-Ahead Logging)缓冲区:元组写入共享缓冲池的同时,相关更改的WAL记录被写入WAL缓冲区; LSN(Logic Sequence Number): WAL记录包含一个逻辑序列号(LSN), 确保每条记录的位置唯一; 物理文件: 虽然元组已经在共享缓冲池中,但尚未写入磁盘上的物理文件。这个写入动作依赖于后续的刷新或检查点操作。需要说明的是,GuassDB(DWS)依赖linux 系统的写入(例如fwrite),所以仍然会有一定的延迟; WAL写入者(WAL Writer):负责定期将 WAL 缓冲区中的记录写入磁盘上的WAL文件; 后端(Backend):后端线程处理客户端请求,在这里是执行插入操作的进程; Bgwriter 和 Checkpointer: 这些后台线程负责将共享缓冲池中的数据定期写入磁盘。Bgwriter 可以异步写入,而 Checkpointer 则在检查点发生时写入; CLOG(Commit Log)缓冲区:事务提交时,其状态被写入 CLOG 缓冲区。CLOG 记录了事务的提交或回滚信息; 检查点(Checkpoint):数据库执行的定期操作,确保所有之前的事务修改都已经写入磁盘。
-
读取的过程相对简单,就是从物理文件先装到 shared_buffer 中,然后从shared_buffers 返回相关的结果。shared_buffers 中就是以 Page 为单位进行存储的,因为每个Page的大小是固定的,所以shared_buffers 能存放的 page 个数也就是确定的。这里面就需要考虑一个问题,因为这个资源是共享的,如果一个线程读取了大量的文件,这样势必会使得其他线程的缓存命中率下降。 GaussDB(DWS)在这引入了 Ringbuffer 的机制,可以限制一个线程所使用的shared_buffers 的大小,从而解决掉这个问题。写入操作是增加的新的元组,Update操作相当于先Delete,再Insert。将旧元组标记为Dead,然后插入新的元组,由VACUUM负责清理。当然,这里面Data 变为DELETE只是用来描述删除的是此Tuple,实际上Data当中的值是不变的。
-
数仓的IO结构一直是影响性能的关键部分,数据库的操作最终还是要体现在最后的物理文件上,那么了解整个 IO 模型对于数仓的调优,索引的使用等都具有很好的指导作用。每个表的读取写入以页(文件块)为基本单位,页的大小是一个BLCKSZ,默认8KB。Tuple保存了当前一行的数据,分为Header和Data两块,头部保存元组的相关信息(列数,事务信息,是否有Toast表 等 ); 每个Tuple最大为2kb,若Data过大无法压缩至2KB,则采用额外的Toast表存储,此时Tuple内的Data保存Toast表的相关信息。 共享内存:可由整个Gaussdb共享,包括shared_buffer 和wal_buffer, 分别用来存放Page和Clog,Wal Segment。 1) WalWriter,BgWriter:主要是将共享内存的内容落盘,WalWriter一般是在事务提交时就需要落盘,但是有时候可以放弃一定的事务一致性原则,从而让WalWriter 异步落盘加快速度。BgWriter负责将shared_buffer中的内容落盘。 2) 外存管理:负责上层与外存之间的文件交互。
-
1) 建立临时表:数据库创建一张临时表,该表继承老表的所有属性。该阶段会申请7级锁(ExclusiveLock),可以与select并发; 2) 数据复制:将原来表中的数据复制到临时表中。在该过程中完成对dead tuples的清理。该阶段申请的是访问排他锁AccessExclusiveLock; 3) 交换表:使用新表代替老表。交换的本质是物理文件的交换,即临时表拿老物理文件,老表拿新物理文件。该阶段会申请八级锁(AccessExclusiveLock); 4) 重建索引:当交换完成后,会进行索引重建,并更新统计信息; 5) 删除临时表:索引重建完成后,会将带有老物理文件的临时表进行删除。影响VACUUM效果的因素1) Oldestxmin的推进 vacuum 只能清理掉当前全局存活的最老事务(OldestXmin)之前的事务所产生的垃圾数据,所以如果仍然存在老事务的话(比如长事务或者长sql 的存在),新事务所产生的垃圾数据并不会被vacuum立即清理。元组被删除后,只有当VACUUM将元组的LinePointer(或者叫item pointer, 指向具体的元组)置为LP_UNUSED状态后,该LinePointer才有可能在新插入数据时复用。 2) Fsm还未生成插入数据时,依赖fsm文件来选择可用的page,如果fsm没有生成则会导致使用新的page而不是复用旧的。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签