自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 收藏
  • 关注

原创 【OpenGauss源码学习 —— (ALTER TABLE(修改表空间))】

在OpenGauss 数据库中,ALTER TABLE ... SET TABLESPACE 命令允许将表和索引移动到新的表空间,这对于管理数据存储和性能优化至关重要。这条命令的主要语法是ALTER TABLE table_name SET TABLESPACE new_tablespace; 其中,table_name 是要移动的表的名称,new_tablespace 是目标表空间的名称。

2024-06-24 19:53:33 915

原创 【OpenGauss源码学习 —— (ALTER TABLE(SET attribute_option))】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书是一种命令,。在中,这种命令可以用来改变列的默认值、是否允许为空、数据类型等属性,以满足不同的业务需求或数据结构变更。在的源代码中,处理和的逻辑通常涉及到调用函数。例如,当命令中包含) 时,会执行函数来实际应用这些选项,而当包含) 时,则会反向执行这些选项的。函数的作用是根据传入的参数,。

2024-06-21 14:23:34 863

原创 【OpenGauss源码学习 —— (ALTER TABLE(调整表中特定列的统计目标))】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书命令用于。通过,数据库查询优化器能够更准确地估算查询结果的选择性,从而生成更高效的查询计划。在中,函数负责执行这一操作,确保新统计信息的正确应用和存储,从而提高数据库的整体性能和效率。

2024-06-20 17:19:10 874

原创 【OpenGauss源码学习 —— (ALTER COLUMN SET/DROP DEFAULT)】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书。

2024-06-19 11:16:12 700

原创 【OpenGauss源码学习 —— (ALTER TABLE(列存修改列类型))】

在数据库管理中,改变表中列的类型是一个常见的操作。这种操作通常通过ALTER TABLE ALTER COLUMN TYPE语句来实现,它允许数据库管理员在不删除和重新创建表的情况下更改列的数据类型。这种操作需要确保数据的正确性和一致性,并且在某些情况下,还需要重写表中的数据来适应新的数据类型。

2024-06-18 17:54:18 904

原创 【OpenGauss源码学习 —— (ALTER TABLE(列存删除列))】

代码修改要点:本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书在数据库管理系统中,命令用于修改表的结构,允许用户。在处理列存储表(表)时,删除列的操作尤为复杂,因为。表将每一列的数据独立存储,这意味着在删除列时,。在执行命令时,核心函数扮演着重要角色。该函数负责。特别是在列存储表中,需要对列描述信息()进行清理,并安排在事务提交时,以确保整个操作的原子性。

2024-06-18 15:26:25 855

原创 【OpenGauss源码学习 —— (ALTER TABLE(CStoreRewriter))】

OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteCStoreTable))】这篇文章详细介绍了OpenGauss数据库中命令的实现细节,特别是涉及到列存储表的重写操作其中,通过重写操作,帮助优化存储在列存储表中的数据的物理布局,这包括数据的压缩和重组,以提高查询效率和减少存储空间。在重写过程中,确保所有的表约束(如NOT NULL约束)和表结构更改(如列的添加或删除)都得到妥善处理,确保数据完整性不受影响。重写操作还涉及更新与表相关的元数据,以反映重写后的新状态,例如。

2024-05-10 14:41:09 842

原创 【OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteCStoreTable))】

【OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteRowTable))】这篇文章详细描述了OpenGauss数据库管理系统中执行命令的源码实现。和都是用于重写表的数据的函数,但是它们针对的表类型不同。主要用于重写列存储表的数据,而则用于重写行存储表的数据。因此,它们的关系在于它们都是用于表数据重写的功能,但是针对的表类型不同,分别适用于列存储表和行存储表。本文,我们来学习一下函数的内容。

2024-05-09 11:33:11 1135

原创 【OpenGauss源码学习 —— (ALTER TABLE(ExecRewriteRowTable))】

【OpenGauss源码学习 —— (ALTER TABLE(Add Column))】这篇文章深入分析了OpenGauss数据库管理系统中执行命令的源码实现。文章探讨了系统如何处理向表中添加新列的过程,包括检查约束、设置默认值以及保证数据完整性的机制。特别提到了函数,它负责管理添加列的过程。此外,文章还为理解更复杂的表结构修改提供了基础,特别是涉及到函数,该函数对于处理表结构变化和数据重组至关重要。在函数中,用于执行表的重写操作。和是两个索引分别决定了。

2024-04-28 16:41:54 883

原创 【OpenGauss源码学习 —— (ALTER TABLE(Add Column))】

Add Column用于向已存在的数据库表中添加新的列。这个过程涉及到更新表的元数据,以及可能对表的物理结构进行调整,特别是在需要初始化新列的默认值时。在数据库系统中,执行Add Column操作通常需要考虑锁定机制以避免与其他数据库操作冲突,并且必须确保数据的完整性和一致性不被破坏。此外,添加列的操作还可能触发相关的事件触发器,这些触发器可以用于执行一些定制的逻辑,如自动更新相关视图或维护日志等。整个过程需要高效地管理,以最小化对数据库性能的影响,特别是在涉及大量数据或高并发环境下。

2024-04-28 14:29:18 1354

原创 【PostgreSQL内核学习(三十)—— 执行器(ExecCreateTableAs)】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和和《》一书。

2024-04-10 16:44:16 1056

原创 【PostgreSQL内核学习(二十九)—— 执行器(ExecProcNode)】

在文章【PostgreSQL内核学习(二十二)—— 执行器(ExecutePlan)】中详细介绍了PostgreSQL数据库中函数的原理和实现细节,强调了它在数据库查询执行机制中的核心作用。文章分析了函数的执行流程,包括初始化变量处理并行执行模式循环执行查询计划节点直到满足退出条件等步骤。此外,还介绍了函数的作用,即执行给定计划节点并返回元组。本文将深入了解的原理和实现细节函数是函数流程中的关键部分,负责实际执行查询计划树中的各个节点并返回结果元组。通过循环调用。

2024-04-03 15:34:33 1181

原创 【OpenGauss源码学习 —— 执行算子(Nest Loop 算子)】

连接算子用于处理表关联,openGauss支持12种连接类型(等),提供了3算子;其中,在先前的学习中,【OpenGauss源码学习 —— 执行算子(hash join 算子)】一文中详细介绍了hash join算子的执行过程。【OpenGauss源码学习 —— 执行算子(Merge Join 算子)】一文中学习了Merge Join算子的执行过程。本文则来继续学习另一个扫描算子Nest Loop算子。Nest Loop可以处理各种连接类型,包括内连接左连接右连接和全连接。对于小型数据集或者。

2024-02-28 16:07:24 628

原创 【PostgreSQL内核学习(二十八) —— 执行器 (表达式计算) 】

在PostgreSQL系统的执行器模块中,“表达式计算” 是一个核心功能,它负责处理和评估SQL查询中的各种表达式,包括算术运算逻辑判断函数调用等。这一过程涉及解析查询中的表达式树,然后按照操作符和函数的定义,逐节点计算表达式的值。执行器会利用类型系统来处理不同数据类型之间的操作,并可能涉及类型转换以确保操作的正确性。此外,表达式计算还可能包括对表达式中涉及的列数据进行访问和检索,以及应用优化策略如索引查找或缓存结果以提高计算效率。通过这一系列复杂的计算过程,PostgreSQL。

2024-02-27 16:48:17 919

原创 【PostgreSQL内核学习(二十七) —— (编码转换)】

PostgreSQL处理客户端和服务器端字符集匹配问题的机制是复杂且灵活的,能够确保数据在不同编码之间传输时保持其原始的意义和结构,从而避免了乱码问题。这一机制主要涉及字符集的识别转换和验证过程,以确保从客户端发送到服务器的数据能够被正确解释和存储,即使客户端和服务器使用的是不同的字符编码(例如,客户端使用 GBK,而服务器使用 UTF-8编码设置和识别•客户端可以在与服务器建立连接时指定其使用的字符编码。这允许客户端告诉服务器它将以何种编码发送数据。例如,一个使用GBK 编码的客户端。

2024-02-23 16:16:34 1458

原创 【PostgreSQL内核学习(二十六) —— (共享数据缓冲区)】

PostgreSQL的共享数据缓冲区()是数据库系统中用于存储从磁盘读取的数据页的内存区域,以便快速重用这些数据,从而减少对磁盘的访问次数和提高查询性能。当数据库需要访问某个数据页时,它首先检查该页是否已在共享数据缓冲区中;如果是直接从内存中读取数据,否则从磁盘加载数据页到缓冲区再进行访问。共享数据缓冲区的大小是可配置的,通过调整参数来实现,这个参数定义了缓冲区分配的内存量。理想的缓冲区大小取决于系统的总内存数据库的工作负载以及其他内存需求。

2024-02-04 10:57:06 970

原创 【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】

在数据库管理系统(DBMS)中,空间管理是指如何在物理存储介质上组织、管理和优化数据的存储。这是DBMS性能和效率的关键因素之一。块(或页面)区间(区域或范围)段表空间和数据库。块(或页面)块(在Oracle中称为块,在SQL Server和PostgreSQL中称为页面是数据库管理系统存储数据的基本单位。一个块通常是从磁盘上以固定大小读取和写入的数据块,这个大小可以是等,根据数据库的配置而定。每个块包含了一系列的记录,这些记录是数据库中存储的实际数据。区间(Extents)区间是一系列连续的块。

2024-02-02 14:54:36 798

原创 【PostgreSQL内核学习(二十四) —— (ALTER MATERIALIZED VIEW)】

是一个SQL命令,用于修改一个已经存在的物化视图的定义或行为。物化视图是一种特殊的数据库对象,它存储了查询结果的实际数据,与普通视图(仅保存查询逻辑)不同。这使得物化视图在处理复杂查询和提高数据检索效率方面非常有用,特别是在涉及大量数据和复杂联结的情况下。使用命令,您可以进行各种修改,比如重命名物化视图更改其底层查询逻辑更新或刷新其中的数据更改存储参数或者修改与物化视图相关的安全和访问规则。这个命令提供了灵活性来维护和优化物化视图,确保它们保持最新并有效地服务于数据库应用程序的需求。在。

2024-01-17 11:34:18 1186

原创 【PostgreSQL内核学习(二十三)—— 执行器(ExecEndPlan)】

在这三篇文章中,首先是【OpenGauss源码学习 —— 执行器(execMain)】,它详细探讨了OpenGauss数据库管理系统中执行器模块的主要功能和实现机制。这部分内容涉及到如何在 OpenGauss 环境下处理和执行SQL语句,包括查询计划的生成和优化,以及如何有效地管理数据流和处理结果。接着,【PostgreSQL内核学习(二十一)—— 执行器(InitPlan)】专注于PostgreSQL数据库的执行器模块,特别是初始化计划(InitPlan)的部分。这篇文章讨论了在。

2024-01-16 10:36:02 1178

原创 【PostgreSQL内核学习(二十二)—— 执行器(ExecutePlan)】

在文章【OpenGauss源码学习 —— 执行器(execMain)】中,我们深入探究了执行器在数据库中的核心功能和逻辑。这篇文章详细介绍了执行器的主要组成部分,如查询执行的初始化与结束主执行循环、以及行处理逻辑等。通过这篇文章,读者可以了解到执行器是如何在数据库系统中处理用户的查询请求,包括如何遍历执行树执行计划节点,以及如何对数据进行操作和传递。另一方面,文章【PostgreSQL内核学习(二十一)—— 执行器(InitPlan)】则专注于介绍了InitPlan函数在PostgreSQL。

2024-01-15 16:44:22 1239

原创 【PostgreSQL内核学习(二十一)—— 执行器(InitPlan)】

在【OpenGauss源码学习 —— 执行器(execMain)】一文中,我们学习了执行器中执行查询的核心函数和逻辑。在本文中,我们将深入研究InitPlan的内容。InitPlan是数据库查询执行过程中的关键组成部分,它用于在查询计划的执行过程中初始化子查询或表达式的结果,以确保正确的查询执行顺序和结果。通过本文的学习,我们将深入了解InitPlan的原理和实现细节,从而更好地理解数据库查询的执行机制。在查询执行阶段之前调用,作为整个执行过程的入口点。它负责触发 InitPlan。

2024-01-15 15:38:14 1146

原创 【OpenGauss源码学习 —— 执行器(execMain)】

在OpenGauss数据库系统中,文件是执行器(Executor)模块的核心部分之一。这个文件主要负责实现查询的执行逻辑,是数据库查询处理的关键组成部分。其中,文件所对应的部分如下图中的红色框区域所示。其中,本文主要介绍蓝色框区域的内容。以下是对在OpenGauss的文件中,以下列出的函数各自承担着查询执行流程的不同责任。这些函数共同协作,确保从查询计划的初始化到执行的每个步骤都能正确进行。#else#endif函数功能InitPlan初始化查询计划。

2024-01-12 14:53:38 1139

原创 【PostgreSQL内核学习(二十)—— 数据库中的遗传算法】

遗传算法GA)是一种启发式搜索算法,用于解决优化和搜索问题,它借鉴了自然界中的进化理论。在数据库领域,遗传算法可以用于各种任务,如查询优化数据挖掘模式识别等。种群(Population)在遗传算法中,一个种群由多个个体组成,每个个体代表数据库中的一个潜在解决方案。染色体(Chromosome)每个个体由染色体表示,它是解决方案的编码。在数据库应用中,染色体可能代表查询计划、数据库索引的配置或数据分布的模式。适应度函数(Fitness Function)这是一个评价函数,用于确定染色体的优劣。

2023-12-27 17:23:21 1255

原创 【OpenGauss源码学习 —— 列存储(获取表大小)】

在OpenGauss中,有一个名为的内置函数可以帮助我们实时获取表的存储空间大小。本文将深入探讨这个函数的工作原理、用途以及如何使用它来监控和优化数据库性能。select pg_size_pretty(pg_table_size('表名'));---创建列存表id INT,age INT,---插入数据---执行pg_table_size查看表的大小72 kB(1 row)

2023-12-25 14:38:33 1286

原创 【PostgreSQL内核学习(十九)—— 存储管理(元组操作)】

对元组的操作包括插入删除和更新三种基本操作,这三种操作都是把元组当作一个整体进行处理。除些之外,在OG中) 这个文件中还实现了元组内部结构的相关操作,包括元组的构造修改分解复制释放等作。一个完整的元组信息将对应一个结构和一个TupleDesc结构,在中还包含一个结构。TupleDesc是关系结构的一部分,也称为元组描述符,它记录了与该元组相关的全部属性模式信息。通过元组描述符可以读取磁盘中存储的无格式数据,并根据元组描述符构造出元组的各个属性值,元组描述符。

2023-12-21 14:16:54 1318

原创 【PostgreSQL内核学习(十八)—— 存储管理(存储管理的体系结构)】

数据库管理系统(DBMS)的本质是向存储设备上写入数据或者读出数据,因此存储的管理是一项非常基础且重要的技术。在PostgreSQL中,存储管理器是专门负责管理存储设备的模块,其提供了一组统一管理外存和内存的功能模块。因此从本质上看,存储管理器提供了PostgreSQL与物理存取设备的接口。因为外存对应着各种磁盘设备,而内存则对应着各种随机存储器。存储管理器是整个PostgreSQL系统的底层模块,各种需要访问底层硬件的操作都需要调用其提供的接口。这是数据库系统的核心部分,负责缓存数据页。

2023-12-19 17:57:15 963

原创 【OpenGauss源码学习 —— (RowToVec)算子】

OpenGauss在PortalRun函数中会实际执行相关的DML查询,对数据进行计算和处理。在执行过程中,所有执行算子分为两大类行存储算子和向量化算子。这两类算子分别对应行存储执行引擎和向量化执行引擎。行存储执行引擎的上层入口是函数,向量化执行引擎的上层人口是函数。其中向量化引擎是针对列存储表的执行引擎。如果存在行存储表和列存储表的混合计算,那么行存储执行引擎和向量化执行引擎直接可以通过VecToRow和RowToVec算子进行相互转换。行存储算子执行入口函数的命名规则一般为 “Exec + 算子名。

2023-12-05 16:28:22 1096

原创 【OpenGauss源码学习 —— (VecToRow)算子】

OpenGauss在PortalRun函数中会实际执行相关的DML查询,对数据进行计算和处理。在执行过程中,所有执行算子分为两大类行存储算子和向量化算子。这两类算子分别对应行存储执行引擎和向量化执行引擎。行存储执行引擎的上层入口是函数,向量化执行引擎的上层人口是函数。其中向量化引擎是针对列存储表的执行引擎。如果存在行存储表和列存储表的混合计算,那么行存储执行引擎和向量化执行引擎直接可以通过VecToRow和RowToVec算子进行相互转换。行存储算子执行入口函数的命名规则一般为 “Exec + 算子名。

2023-12-05 15:38:59 1067

原创 【OpenGauss源码学习 —— 执行算子(Merge Join 算子)】

Merge JoinMerge Join的主要优势在于对有序关系的高效处理。由于输入已排序,不需要回溯,整个算法的时间复杂度为O(N+M),其中N和M分别是两个输入关系的大小。Merge Join不需要额外的内存结构,对内存友好。相比于Hash Join,适用于大规模数据集。由于需要有序输入,如果关系没有按连接属性排序,则需要进行排序操作,增加了初始开销。Merge Join只能处理等值连接,无法处理其他类型的连接操作。总体而言,Merge Join。

2023-11-25 14:57:48 1536

原创 【 OpenGauss源码学习 —— 列存储(CStoreMemAlloc)】

学习完了CU和CUStorage类,我们最后来学习一下类。类提供了内存管理的功能,而CU和CUStorage类负责处理列存储中的具体数据单元和物理存储。在实际的列存储系统中,这些类可能会协同工作以有效地管理内存和存储数据。类类用于管理列存储中的内存分配和释放。功能:分配内存,并根据需要注册到管理器。释放缓存的节点。重新分配内存,同时处理注册和取消注册。释放内存,同时处理取消注册。注册内存指针,将其添加到管理表。取消注册内存指针,将其从管理表中移除。Reset 方法。

2023-11-22 17:23:00 127

原创 【 OpenGauss源码学习 —— (hash_search)】

在对源码的不断学习中,经常可以看到一个名为的函数,该函数用于在哈希表中查找键并执行相应操作。先前一直没有仔细看过该函数的内部逻辑,本文则来详细的学习一下吧。

2023-11-22 09:32:35 170

原创 【OpenGauss 列存储学习总结 2】

列存储是一种优化技术,用于在数据库系统中存储和查询大量数据。与传统的行存储方式不同,列存储将每个列的数据分别存储在独立的存储单元中,而不是按照行的方式存储。这种存储方式在分析性查询、聚合操作和大规模数据处理等场景下具有很大的优势。行、列存储模型各有优劣,建议根据实际情况选择。通常openGauss用于OLTP(联机事务处理)场景的数据库,默认使用行存储,仅对执行复杂查询且数据量大的OLAP(联机分析处理)场景时,才使用列存储。默认情况下,创建的表为行存储。

2023-11-20 20:33:40 211

原创 【OpenGauss源码学习 —— 列存储(ColumnTableSample)】

在先前的学习中,我们在【 OpenGauss源码学习 —— 列存储(CopyTo)】一文中也学习过成员函数,该函数实现了列式存储表的扫描过程,通过加载压缩单元描述符(CUDesc)、进行粗略检查RoughCheck)、填充数据批量)等步骤完成扫描操作。那么和函数之间有什么联系吗?和函数的区别主要在于它们所属的上下文和调用方式。这两个函数都用于执行列式存储表的扫描,但可能在不同的软件层次上。:属于CStore类,表明它可能是类的成员函数;而函数属于执行器Executor)或执行计划节点。

2023-11-20 20:07:18 463

原创 【OpenGauss源码学习 —— 执行算子(Append算子)】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书、《》一书以及。

2023-11-18 17:15:28 800

原创 【 OpenGauss源码学习 —— 列存储(update)】

在先前的学习中分别介绍了列存储(创建表)和列存储(Insert),相比大家对列存储也有了初步的认识和了解。本文接下来将学习列存储(update)的相关知识。行存储(Row-based storage):行存储以行为单位存储数据,整个行的数据被存储在一起。当执行更新操作时,行存储需要更新整行的数据。即使只修改了一部分字段,也需要更新整个行,这可能导致额外的存储和I/O操作。列存储(Column-based storage):列存储以列为单位存储数据,每一列的数据被存储在一起。

2023-11-18 15:03:29 730

原创 【 OpenGauss源码学习 —— 列存储(CStoreAllocator 类)】

本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。本文主要参考了的开源代码和一书以及和一些。

2023-11-17 11:39:47 148

原创 【 OpenGauss源码学习 —— 列存储(cstore_vector)】

在OpenGauss中,文件与列存储)有着密切的联系,它主要定义了与列存储向量操作相关的数据结构和函数。列存储是一种数据存储格式,将表的每一列分别存储,相比传统的行存储格式,它有助于提高查询性能,特别是对于OLAP联机分析处理)场景。/* 类型声明 *//* bulkload_block: 内存块结构体 *//* bulkload_block_list: 用于批量加载的内存块列表结构体 *//* bulkload_minmax: 在批量加载过程中用于存储最小值和最大值信息的结构体 */

2023-11-17 11:39:18 185

原创 【 OpenGauss源码学习 —— 列存储(CUStorage)】

在学习完CU和CStore后,我们紧接着来了解一下CUStorage类。通常,CStore类作为整个列式存储引擎的核心,通过管理 CU 和 CUDesc来实现对列式存储数据的存储检索和操作。CUStorage类可能提供了底层的物理存储和读写操作。CUStorage类是数据库内核中与列存储)相关的实现之一。通过SaveCU和方法,将列存储CU)数据写入存储文件。可以选择直接写入或用于扩展。通过LoadCU和方法,从存储中加载列存储数据。可以选择直接加载或用于缓存。包括创建文件打开文件关闭文件。

2023-11-15 20:37:18 220

原创 差分演化算法相关文献总结

本人作为一名从事了三年演化算法研究的菜鸡研究生,其中大部分时间都在专注于差分演化算法(Differential Evolution, DE)的相关研究。现如今已经毕业,回顾往昔,经过阅读大量的文献,也算是浅浅的入了演化算法的门。本文将总结出我在读研期间所收集和阅读过的与DE相关的一些论文,以供从事演化算法研究,尤其是DE算法研究的各位学者们进行学习和参考。下面我会附上论文的名称和对应的连接,感兴趣的小伙伴可自行下载阅读。首先,我们还是先附上DE在众多的演化算法中,差分演化算法作为一种经典高效的。

2023-11-15 20:35:47 416

原创 【 OpenGauss源码学习 —— 列存储(CStore)(六)】

本章我们继续在【 OpenGauss源码学习 —— 列存储(CStore)(五)】的基础上进行进一步学习,本文将主要介绍CStore类中剩余的各别私有成员函数。

2023-11-13 17:35:21 242

TPC-H V 3.0.1

TPC-H是由Transaction Processing Performance Council (TPC) 开发的一个广泛认可的基准测试套件,专用于评估数据仓库和企业级数据库系统在执行复杂查询和商业数据分析时的性能。这个基准测试是为了模拟真实世界中数据仓库的运行环境,提供了一套标准化的测试来测量数据处理和查询响应能力。

2024-01-11

差分演化算法相关学术论文集合

一些差分演化算法(Differential Evolution, DE)的相关学术论文集合,本资源总结了我在读研期间所收集和阅读过的与 DE 相关的一些论文,以供从事演化算法研究,尤其是 DE 算法研究的各位学者们进行学习和参考。

2023-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除