GBase 8c 学习笔记 008 —— GBase 8c 高级语法

0    46    1

Tags:

👉 本文共约3301个字,系统预计阅读时间或需13分钟。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

环境准备

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

存储引擎

  • 目前支持
    • USTORE,表示表支持Inplace-Update 存储引擎。
    • ASTORE,表示表支持Append-Only 存储引擎。
  • 支持三种存储方法
    • ROW,表示表的数据将以行式存储。
    • 行存储适合于OLTP业务,适用于点查询或者增删操作比较多的场景。
    • COLUMN,表示表的数据将以列式存储。
    • 列存储适合于数据仓库业务,此类型的表上会做大量的汇聚计算,且涉及的列操作较少。
    • MOT,表示表的数据将以内存的形式存储。
    • MOT内存适用于高吞吐事务处理,性能瓶颈加速,消除中间层缓存,大规模流数据提取;

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

分区表

GBase 8c 需要将数据按照一定规律分布到各个数据节点,目前支持 hash 分片。
在此基础上,分区表功能,支持二级分区,9种分区组合,interval 分区。即 分片+分区 功能。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

interval 分区:根据间隔自动创建分区,例如:1 day、1 month。(主备式)

分区自动管理:根据间隔自动创建分区,例如:1 day、1 month。(分布式)

语法:建表时增加 WITH, 或者通过 ALTER TABLE xxx SET (PERIOD=‘1 day’)来实现。(其中 PERIOD范围是 1 hour ~ 1 year)。通过ALTER TABLE xxx RESET (PERIOD)来关闭。
限制:仅支持RANGE分区的一级分区表 (其他分区类型,以及带有二级分区的表不支持)效果:从当前命令时间(向下规约到hour)算起,连续增加能覆盖30个period时间范围的分区,每个分区大小为period。如果现有分区在待新增的分区范围内,则跳过此新增分区。且每隔period时间后再次执行此流程。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

索引类型

GBase 8c 提供了多种索引类型:hash,B-tree,gist,gin。每一种索引类型使用了一种不同的算法来适应不同类型的查询。

  • B-tree —— 适合所有的数据类型,支持排序,支持大于、小于、等于、大于或等于、小于或等于的搜索。
  • hash —— 索引存储的是被索引字段VALUE的哈希值,只支持等值查询。
  • Gist(Generalized Search Tree) —— 即通用搜索树。可处理地理数据、图像,空间,树形图等场景。
  • gin —— gin索引是“倒排索引”。应用领域是加速全文搜索。

默认情况下,create index 使用B-tree 索引并适合于大部分情况。

hash 索引:只能处理简单等值查询。
通过语法:create index … using hash(column) 。指定使用hash索引

B-tree 索引: btree索引常常用来进行例如大于、小于、等于这些操作。
通过语法:create index … using btree(column) 。指定使用btree索引。

gist 索引:
地理数据、图像:如果我们想要查询在某个地方是否存在某一点,即判断地理位置的"包含“。
对于空间数据,GiST索引可以使用 R树,以支持相对位置运算符(位于左侧,右侧,包含等)。
对于树形图,R树可以支持相交或包含运算符。
通过语法:create index … using gist(column) 。指定使用gist索引。

gin 索引:当需要搜索多值类型内的VALUE时,适合多值类型,例如数组、全文检索、TOKEN。(根据不同的类型,支持相交、包含、大于、在左边、在右边等搜索)。
通过语法:create index … using gin(column) 。指定使用 gin 索引。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法
GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

数据压缩

行存表 创建表时通过关键字 compresstype,可实现数据压缩,减少磁盘的占用。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

  • COMPRESSTYPE
    行存表参数,设置行存表压缩算法。1代表pglz算法,2代表zstd算法,默认不压缩。(仅支持ASTORE下的普通表)

取值范围:0~2,默认值为0。

  • COMPRESS_LEVEL

行存表参数,设置行存表压缩算法等级,仅当COMPRESS_TYPE为2时生效。压缩等级越高,表的压缩效果越好,表的访问速度越慢。(仅支持ASTORE下的普通表)

取值范围:-31~31,默认值为0。

列存表 创建表时通过关键字 compression,可实现数据压缩,减少磁盘的占用。

  • COMPRESSION

指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比也越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。行存表不支持压缩。

取值范围:
列存表的有效值为YES/NO/LOW/MIDDLE/HIGH,默认值为LOW。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

子事务

子事务允许你回滚部分已经事务中完成的工作。可通过关键字 SAVEPOINT,EXCEPTION,Autonomous Transaction 启动子事务。

自治事务

自治事务(Autonomous Transaction),在主事务执行过程中新启的独立的事务。自治事务的提交和回滚不会影响已提交的数据,同时自治事务也不受主事务的影响。

自治事务在存储过程,函数和匿名块中定义,用 PARAGMA AUTONOMOUS_TRANSACTION 关键字来声明。

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

GBase 8c 学习笔记 008 —— GBase 8c 高级语法

参考

https://www.modb.pro/topic/619301

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部