oceanbase存储引擎2
假如一个数据很长很大 会新开一个overflow page(溢出页) 一页不够再开一页
一般如果存一个文件或者什么大的东西 可以记个地址进去 效率高
如果有外部文件 可以链接到字段 但数据库无法保证其会不会被别的软件修改
系统目录/元数据 如表 列结构 索引 用户 权限等 存在里面 每个数据库的定义不一样
工作负载(workloads)
OLTP
在线交易处理
OLTP 场景包含简单的读写语句,且每个语句都只操作数据库中的一小部分数据
例:a给了b 5块钱 a-5 b+5
OLAP
在线分析处理
主要处理复杂的,需要检索大量数据并聚合的操作
例: 支付宝今日交易数据
Hybrid OLTP + OLAP
混合态 均可以处理
数据在底层并不一定是一行一行存的 这是用户不用考虑的
1.n-ary storage model(NSM) 一个数据一行 这个就很适合OLTP
优势:如果要SELECT一行 直接走索引就能取到tuple
劣势:如果是复杂的分析 列查找等 要扫描所有数据 里面有很多无用数据 但是因为是行存 必须一个个解析 所以性能低下
2.decomposition storage model(DSM)
一个tuple存一列 比如一个元组存所有人的身高 对OLAP友好
如果要查找行 比如第几个身高是x的
a. 规定每列第一个存a的数 第二个存b的数据
b.每个列有自己的索引 找的时候好找 但是空间开销大
优势:如果查找列性能好
劣势:插入更新删除都不太方便
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hello Flu1t!