oceanbase基础

与mysql对比
分布式一致性算法 paxos
存储结构(引擎)用的是两级的
数据库自动分片功能,提供独立的obproxy路由写入查询等操作到对应的分片
多租户
方便扩展
存储层
http://www.hzhcontrols.com/new-1391864.html
LSM tree,is very different from relationship database 读写分离,数据氛围基线数据和增量数据,基线放SSD, 增量放内存
它并不是一棵树,也不是一种具体的数据结构,它实际上是一种数据保存和更新的思想。
Image
**ob所有的数据更新写入操作都在内存的 MemTable ,达到阈值,转磁盘中的 SSTable
存储层以一张表或者一个分区为粒度提供数据存储与访问,**每个分区对应一个用于存储数据的Tablet(分片),用户定义的非分区表也会对应一个 Tablet

均衡层
当租户有扩容操作,获得更多服务器资源时,均衡层会将租户内已有的日志流进行分裂,并选择合适数量的 Tablet 一同分裂到新的日志流中,再将新日志流迁移到新增的服务器上,以充分利用扩容后的资源。新建表和新增分区时,系统会按照均衡原则选择合适的日志流创建 Tablet
多租户
每一个租户即一个实例(类比 MySQL Instance)

索引
OceanBase 数据库采用的是聚集索引表模型,对于用户指定的主键,系统会自动生成主键索引,而对于用户创建的其他索引,则是二级索引
执行计划
执行计划分为三种:Local 、Remote 、Distribute
local 本节点 单表单分区 romote 其他节点 单表单分区 Distribute 多表多分区 多个节点
https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001700649

=======================================================================
|ID|OPERATOR            |NAME                          |EST. ROWS|COST|
-----------------------------------------------------------------------
|0 |EXCHANGE IN REMOTE  |                              |1        |54  |
|1 | EXCHANGE OUT REMOTE|                              |1        |53  |
|2 |  TABLE GET         |t_cs_digital_core_chat_history|1        |53  | TABLE GET  主键定位  TABLE SCAN范围搜索  若有索引则TABLE SCAN   t1(index1)  没有则主表扫描
=======================================================================
对于普通索引和全局索引,索引回表的逻辑是封装在 TABLE SCAN 算子中的 is_index_back是否需要回表 is_global_index 标识算子是否是扫描全局索引
Outputs & filters: 
-------------------------------------0 - output([t_cs_digital_core_chat_history.visit_session_id(0x7f4c5f91ab90)],  //输出列[t_cs_digital_core_chat_history.slot(0x7f4c5f91b110)]), filter(nil)  过滤41 - output([t_cs_digital_core_chat_history.visit_session_id(0x7f4c5f91ab90)], [t_cs_digital_core_chat_history.slot(0x7f4c5f91b110)]), filter(nil)2 - output([t_cs_digital_core_chat_history.visit_session_id(0x7f4c5f91ab90)], [t_cs_digital_core_chat_history.slot(0x7f4c5f91b110)]), filter([t_cs_digital_core_chat_history.data_type(0x7f463e248a10) != 3(0x7f463e248360)]), access([t_cs_digital_core_chat_history.data_type(0x7f463e248a10)], [t_cs_digital_core_chat_history.visit_session_id(0x7f4c5f91ab90)], [t_cs_digital_core_chat_history.slot(0x7f4c5f91b110)]), partitions(p0), //非分区表只有p0is_index_back=true, filter_before_indexback[false], range_key([t_cs_digital_core_chat_history.ID(0x7f4c5f91a610)]), range[4003526 ; 4003526], //  索引的key列,range start endrange_cond([t_cs_digital_core_chat_history.ID(0x7f4c5f91a610) = 4003526(0x7f4c5f919f60)]) condition  determining the range Used Hint:
-------------------------------------/*+*/Outline Data:
-------------------------------------/*+BEGIN_OUTLINE_DATAFULL(@"SEL$1" "cs_digital_core_db.t_cs_digital_core_chat_history"@"SEL$1")END_OUTLINE_DATA*/Plan Type:
-------------------------------------
REMOTEOptimization Info:
-------------------------------------t_cs_digital_core_chat_history:table_rows:10, physical_range_rows:1, logical_range_rows:1, index_back_rows:0, output_rows:0, est_method:local_storage, optimization_method=rule_based, heuristic_rule=unique_index_without_indexbackParameters
-------------------------------------

对于有关联性的表,建议使用关联键作为分区键,并采用相同分区方式,尽量避免区跨节点操作
副本
zone>=3 奇数选举 以分区为单位,一个zone包含一个副本,一个分区数据可在多个zone内保存多个副本,副本容灾和分散压力,主从副本之间通过基于 Multi-Paxos 的分布式共识协议实现了副本之间数据的一致性
分区
单个表最多支持创建的分区个数为 8192 个
zone 副本 observer Shared Nothing obproxy multi tenant

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【cfengDB】自己实现数据库第0节 ---整体介绍及事务管理层实现

LearnProj 内容管理 MySQL系统结构一条SQL执行流程 cfengDB整体结构事务管理TM模块TID文件规则定义文件读写 -- NIORandomAccessFile、FileChannel、ByteBuffer接口实现文件合法检测begin()commit(tid)rollback(tid)tid文件创建 本文作为数工底层的项目CfengDB开始篇章&#xf…

UART串口通信协议

一、串行通信 串行通信分为两种方式:同步串行通信和异步串行通信。 同步串行通信需要通信双方在同一时钟的控制下,同步传输数据。 异步串行通信是指通信双方使用各自的时钟控制数据的发送和接收过程。 二、UART 通用异步收发传输器(Unive…

【Vue/element】 el-table实现表格动态新增/插入/删除 表格行,可编辑单元格

el-table实现表格动态新增/插入/删除 表格行,可编辑单元格 效果如下: 点击“新增一行”可以在表格最后新增一行,单元格内容可编辑 点击绿色按钮,可在指定行的后面插入一行 点击红色-按钮,可以删除指定行 原理&#…

让小程序动起来-轮播图的两种方式--【浅入深出系列003】

浅入深出系列总目录在000集 如何0元学微信小程序–【浅入深出系列000】 文章目录 本系列校训学习资源的选择啥是轮播图轮播图的关键代码最常见的轮播图代码便于理解的轮播代码两种轮播代码的比较 实际操练第一步,就是找到文件。第二步,先改动一下最显眼…

Docker使用总结

Docker 1.什么是 Docker 官网的介绍是“Docker is the world’s leading software container platform.” 官方给Docker的定位是一个应用容器平台。 Docker 是一个容器平台的领导者 Docker 容器平台 Docker 应用容器平台 application项目 Mysql Redis MongoDB ElasticSeacrh …

分布式运用——存储系统Ceph

分布式运用——存储系统Ceph 一、Ceph 介绍1.Ceph 简介2、存储基础2.1 单机存储设备2.2 单机存储的问题2.3 商业存储解决方案2.4 分布式存储(软件定义的存储 SDS)2.5 分布式存储的类型 3.Ceph 优势3.1 高扩展性3.2 高可靠性3.3 高性能3.4 功能强大 4.Cep…

hybridCLR热更遇到问题

报错1: No ‘git‘ executable was found. Please install Git on your system then restart 下载Git安装: Git - Downloading Package 配置:https://blog.csdn.net/baidu_38246836/article/details/106812067 重启电脑 unity:…

嵌入式工程师常用的软件工具推荐

前言:常言道:工欲善其事,必先利其器。作为一名合格的嵌入式工程师,日常可能需要接触和处理各种奇奇怪怪的问题,这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受&#xf…

MySQL表的约束

目录 前言 1.什么是约束 2.空属性 3.默认值 4.列描述 5.zerofill 6.主键 7.自增长 8.唯一键 9.外键 总结 前言 hello,各位小伙伴大家好,本章内容为大家介绍关于MySQL约束的相关内容,关于约束这个概念,如果是第一次接触可…

JAVA ---- 经典排序算法

目录 一. 插入排序 1. 直接插入排序 代码演示 2.希尔排序( 缩小增量排序 ) 二. 选择排序 1.直接选择排序 代码: 2. 堆排序 代码 三. 交换排序 1. 冒泡排序 代码 2. 快速排序 代码(有注释): 动图来自网…

ubuntu创建多用户并使用ssh链接

添加多个同时登录的用户 以下内容中的“username”根据自己需求自己定义 1.创建新用户 sudo useradd username2.给新用户添加管理权限 sudo vim /etc/sudoers打开的文件中添加如下内容 username ALL(ALL:ALL) ALL3.设置密码 输入: sudo passwd username打开的…

「软件测试」最全面试问题和回答,全文背熟不拿下offer算我输

一般要应聘关于测试的工作,面试题会不会很难?下面小编整理了软件测试面试题及答案,欢迎参考! 一、引言 1.1 文档目的 本次文档是为了收集在面试中遇到的一问题与常见的一些答案并不是唯一答案 二、职业规划 2.1 简单的自我介绍下 面试宫&#xff…

点大商城V2_2.5.0 全开源版 商家自营+多商户入驻 百度+支付宝+QQ+头条+小程序端+unipp开源前端安装测试教程

播播资源安装点大商城V2_2.5.0 全开源版测试后发现后台总体体验下来比较简洁,营销功能还是挺多该有的都有了,相比上一版优化很多细节。首页和会员中心均支持DIY装修,底部菜单也一样,安装测试中目前未发现BUG,小程序整体…

etcd实现大规模服务治理应用实战

导读:服务治理目前越来越被企业建设所重视,特别现在云原生,微服务等各种技术被更多的企业所应用,本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结,同时结合当前较火的分布式开源kv产品etcd,…

文献阅读笔记——求解车辆路径问题及其变体的元启发式算法的分类综述

论文题目:A taxonomic review of metaheuristic algorithms for solving the vehicle routing problem and its variants 其他信息:Computers & Industrial Engineering|2020|Raafat Elshaer⁎, Hadeer Awad 文章贡献:1)对使…

如何用Python搭建监控平台

监控和运维,是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控,我们能够及时了解到企业网络的运行状态。一旦出现安全隐患,你就可以及时预警,或者是以其他方式通知运维人员,让运维监控人员有时间处…

什么是计算机蠕虫?

计算机蠕虫诞生的背景 计算机蠕虫的诞生与计算机网络的发展密切相关。20世纪60年代末和70年代初,互联网还处于早期阶段,存在着相对较少的计算机和网络连接。然而,随着计算机技术的进步和互联网的普及,计算机网络得以迅速扩张&…

S32 Design Studio for ARM(S32DS)下载和安装

1. S32 Design Studio for ARM 介绍 S32 Design Studio for ARM(下面简称S32DS),是 NXP 官方在 2014 年官方推出的,专门面向 S32K、KEA、MAC57D54H等系列微控制器的集成开发环境。 S32DS是由Eclipse和一些插件集成而来的开发平台…

kafka消息队列最常用的两种模式,以及应用场景

目录 一、发布-订阅模式 二、点对点模式 三、应用场景 一、发布-订阅模式 发布-订阅模式是最常见的消息传递模式,其中消息发布者将消息发送到一个或多个主题(Topic),而订阅者可以选择订阅一个或多个主题来接收消息。每个订阅者…

实现本地缓存-caffeine

目录 实现caffeine cache CacheManager Caffeine配置说明 创建自定义配置类 配置缓存管理器 编写自动提示配置文件 测试使用 创建测试配置实体类 创建测试配置类 创建注解扫描的测试实体 创建单元测试类进行测试 实现caffeine cache CacheManager SimpleCacheManag…