Light Append 从字面上理解为轻量的追加。Light append 是一种可绕过缓冲池开销的大
数据量的以块的方式快速追加到表中的方式。如图 9.15 所示,当发生 light append 时,与
light scan 类似,不会使用 buffer pool 作为数据缓存,而会在虚拟内存段分片独立的内存区
域。同时,从图 9.15 可以看出,light append 以一种成块的方式追加到表的尾部(高水位),
即使表的前部存在可用的空间以供使用,light append 会忽略高水位之前的空间,而直接找
到表的高水位,直接开辟新的空间。如果使用不当,则总是以 light append 方式新增空间,
而 delete 释放的空间得不到使用时将会出现空间浪费的情况。
文章图片
自动使用 light append 的条件如下。
与 light scan 不同的是,我们没有办法强制启用 light append,只能在同时满足如下 2
个特定条件的情况下,数据库优化器自动启用。
1. Raw table
【gbase|GBASE 8s Light Append简介】即对表的操作取消日志,通过 create raw table…或者 alter table tabname type(raw);
创建或者修改为 raw table。对临时表 with no log 的情况也有效。
2. No Index
表没有任何索引。
Light append 典型应用场景如下。
1. 临时表
创建临时表时,我们采用 with no log 如 select * from tabname into temp tmp_t with no log;
。
2. 大批量数据导入
我们使用外部表 external table 和 HPL 进行数据导入时,通过 light append 方式可以大大提高数据导入的性能。
可以通过 onstat -g lap 命令来监控当前启用 light append 的情况。
推荐阅读
- gbase|GBASE 8s 物理存储单元和逻辑存储单元
- gbase|GBASE 8s ESQLC数据类型 - 字符串的库函数
- database|ESQLC数据类型 - string类型
- database|GBase 8s 高可用简介
- 安全|GBase 8s ESQLC创建线程安全的应用程序
- 安全|GBase8s ESQL/C 跨线程连接
- 数据库|GBase 8s MPP产品简介
- 离线数仓|Hive 3.1.2 数仓基本概念 大致分层
- MySQL|第1章 数据库系统概论---数据库与机器学习