OBCP考点总结二

news/2024/12/4 20:09:55/

11.转储相关参数

minor_freeze_times

n 控制两次合并之间的转储次数,达到此次数则自动触发合并(Major Freeze)

n 设置为 0表示关闭转储,即每次租户MemStore使用率达到冻结阈值(freeze_trigger_percentage)都直接触发集群合并 minor_merge_concurrency

n 并发做转储的分区个数;单个分区暂时不支持拆分转储,分区表可加快速度

n 并发转储的分区过少,会影响转储的性能和效果(比如MemStore内存释放不够快)

并发转储的分区过多,同样会消耗过多资源,影响在线交易的性能

12.写IO,读IO

宏块

OceanBase 数据库将磁盘切分为大小为 2MB 的定长数据块,称之为宏块(Macro Block),宏块是数据文件写 IO 的基本单位,每个 SSTable 就由若干个宏块构成, 宏块2M 固定大小的长度不可更改, 后续转储合并重用宏块以及复制迁移等任务都会以宏块为最基本粒度。

微块

在宏块内部数据被组织为多个大小为 16KB 左右的变长数据块,称之为微块(Micro Block),微块中包含若干数据行(Row),微块是数据文件读 IO 的最小单位。每个数据微块在构建时都会根据用户指定的压缩算法进行压缩,因此宏块上存储的实际是压缩后的数据微块,当数据微块从磁盘读取时,会在后台进行解压并将解压后的数据放入数据块缓存中。 每个数据微块的大小在用户创建表时可以指定,默认 16KB,用户可以通过语句指定微块长度,但是不能超过宏块大小。

13.outline

所有客户端 连接数据库都必须使用 -c , 错误:

explain select /+index(h2 idx_h2_c1),use_nl(h2,h1),leading(h2) / h1.c1, h2.c2 from h1 ,h2 where h1.c1=h2.c1;在dbeaver也是可以生效的n /+ leading(table_name_list)/

l 指定表的连接顺序

l 如果发现hint指定的table_name不存在,leading hint失效;

l 如果发现hint中存在重复table,leading hint失效

14.全局时间戳服务(Global Timestamp Service,简称 GTS), 事务提交时 OceanBase 数据库内部为每个租户启动一个全局时间戳服务,事务提交时通过本租户的时间戳服务获取事务版本号,保证全局的事务顺序。

15.对于用户租户而言,OceanBase 数据库使用租户级别内部表 __all_dummy 表的 Leader 作为 GTS 服务提供者,时间来源于该 Leader 的本地时钟。GTS 默认是三副本的,其高可用能力跟普通表的能力一样,保证单节点故障场景下 RTO < 30s。

16.全局索引

全局索引的创建规则是在索引属性中指定 GLOBAL 关键字。与局部索引相比,全局索引最大的特点是全局索引的分区规则跟表分区是相互独立的,全局索引允许指定自己的分区规则和分区个数,不一定需要跟表分区规则保持一致。

17.读写流程

Get/MultiGet/Exist 的查询流程是类似的,如下图所示。

先读 boolmfilter 判断数据行在不在,不在就直接返回。

如果存在,接下来读 row cache,

如果未命中,接下来读block index cache.

如果命中 ,然后读 block cache ,

未命中,读IO

对于不存在行的"空查",我们会构建布隆过滤器,并对布隆过滤器进行缓存

Scan/MultiScan 的查询流程是类似的,如下图所示。

  1. boolfileter 命中,直接返回。
  2. 未命中,block index cache,
  3. 命中了 block index cache,读block cache
  4. 如果未命中,读IO

18.合并

合并特征完整多个计算密集任务:

数据压缩

数据校验

统计信息收集

Schema 变更 对于加列、减列等 Schema 变更,OceanBase 数据库可以在合并中一起完成数据变更操作,DDL 操作对业务来说更加平滑。

轮转合并

为了减少合并对业务的影响,各个 Zone 按照指定的顺序依次合并,正在合并的 Zone 不对外提供服务。

19.全局索引

分区表的DDL操作可能导致索引失效

索引建立的原因:

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

20 轮转合并 (注意:以zone为单位)

一般情况下,OceanBase会有3份(或更多)数据副本;可以轮流为每份副本单独做合并

当一个副本在合并时,这个副本上的业务流量可以暂时切到其它没有合并的副本上

某个副本合并完成后,将流量切回这个副本,然后以类似的方式为下一个副本做合并,直至所有副本完成合并

通过参数enable_merge_by_turn开启或者关闭轮转合并

以ZONE为单位轮转合并,只有一个ZONE合并完成后才开始下一个ZONE的合并;合并整体时间变长

某一个ZONE的合并开始之前,会将这个ZONE上的Leader服务切换到其它ZONE;切换动作对长事务有影响。


http://www.ppmy.cn/news/64423.html

相关文章

Oracle配置方案-RAC

基本的Oracle RAC配置方案的具体步骤&#xff1a; 硬件准备&#xff1a; 确保服务器满足Oracle RAC的硬件要求&#xff0c;包括适当的CPU、内存和存储配置。配置共享存储&#xff1a;使用共享存储&#xff08;如SAN或NAS&#xff09;来存储数据库文件&#xff0c;确保所有节点都…

图片处理软件:分享6款非常实用的图片处理工具

目录 一、移动端 1、snapseed 2、一键抠图 3、pixlr 二、电脑端 1、图片编辑助手 2.GIMP 3、photopea 今天给大家分享6款非常实用的图片处理工具&#xff0c;其中包含移动端和电脑端&#xff0c;每一款都非常实用&#xff0c;希望对大家能有所帮助&#xff01; 一、移…

linux系统挂载硬盘

linux系统挂载硬盘 1、背景2、环境3、准备工作4、挂载分区4.1、查看分区信息4.2、创建分区4.3、设置分区格式4.4、创建挂载目录4.5、挂载分区4.6、设置开机自动挂载4.7、验证是否挂载成功 1、背景 日常使用过程中随着系统业务量的新增对磁盘的空间和性能提出了更高的要求&…

美句分享~程序员的放松时间~

愿努力生活的人&#xff0c;各有各的风雨灿烂。 生活就是生动的活着&#xff0c;用最美的心情过好自己的日子&#xff0c;如此甚好&#xff01; 生活百味&#xff0c;及时清醒也事事甘心。 每一个失眠的日子&#xff0c;多回头看看&#xff0c;细节全是答案。 凡是好的东西…

linux命令之crontab详解

crontab 提交和管理用户的需要周期性执行的任务 更多linux命令详解&#xff1a;linux命令在线工具 补充说明 crontab命令 被用来提交和管理用户的需要周期性执行的任务&#xff0c;与windows下的计划任务类似&#xff0c;当安装完成操作系统后&#xff0c;默认会安装此服务工…

R语言 | 认识apply家族

目录 一、apply()函数 二、sapply()函数 三、lapply()函数 四、tapply()函数 ​五、iris鸢尾花数据集 R语言提供了一个循环系统称apply家族&#xff0c;它具有类似for循环的功能&#xff0c;但是若想处理相同问题&#xff0c;apply家族函数好用太多了。 一、apply()函数 …

神奇,声网Web SDK还能这么实现直播中美颜功能

前言 本篇文章是通过使用声网Web SDK来实现直播中美颜效果的深度体验文章&#xff0c;其中发现了屏幕共享并本地合图多个视频、图片&#xff0c;声网美颜插件等功能特性十分强大和专业&#xff0c;特为此做一个技术体验的分享&#xff0c;毕竟好技术就是要去传播的。 随着音视…

JackSon的ObjectNode和JsonNode

JackSon的ObjectNode和JsonNode 想要代替FastJson的JsonObect&#xff0c;需要用到ObjectNode和JsonNode 最核心的就是&#xff1a; JsonNode是一个抽象类&#xff0c;不能实例化&#xff0c;它不能put新节点进去&#xff08;节点就是jsonobject存储的一对kv&#xff09;Object…