当前位置:网站首页>GBase 8s分片技术介绍
GBase 8s分片技术介绍
2022-08-11 05:21:00 【蜻蜓队镸】
分片的概念和分类
分片是数据表和索引上的一项技术,通常一张表的数据存放在一个dbspace上。下面先讲讲分片的好处,为什么需要分片,第一,假设一张表上同时有很多的索引,当数据量变得很大时,索引的层数也随之增加,因此定位你所查找的记录时,所访问的页面就会相应地增加,SQL的性能就会因为数据量的逐渐变大而变慢;第二,假设有一张表存放了一年的数据,这个表上没有任何的索引,但是大多数人都是访问最近一个月的数据,由于没有索引,那么每个更新或者查询操作都需要去查看全年的数据,性能肯定不会好;第三,假设需要在一张表上做统计的操作,需要扫描整张表的信息,这个统计操作没有索引可以使用,索引对这个统计操作也没有任何的帮助,这类操作肯定很慢。这些问题在实际的使用中时很常见的,在GBase 8s中通过数据分片可以解决这些问题。
另外一个分片的原因时为了解决数据存储上限的问题。
在GBase 8s中,分片有两种形式,一种是和列的值没有关系,另一种是和列的值有关系。第一种称做轮循方式的分片,简单来说,就是假设你的表存放在10个分区上,那么插入的第1条记录将存放在第1个分区上,第2条记录存放在第2个分区上,以此类推,第11条记录存放在第一个分区上,因此最终的结果是每个分区上存放的记录是相同的;第二种分片技术是指按一个或者多个列的值的不同,将每个记录放在相对应的分区上。第二种分片的技术又细分为按表达式分区,按列表分区、按间隔分区。
表达式分区是指在创建表时指定了一个分变的表达式,在插入或者更新数据时,会去计算这个表达式的值,如果满足表达式中的条件,就把这条记录存放在和表达式相关联的分区中。在分片的表达式中可以有多个列,可以使用and和or操作符。Oracle的哈希(hash)分区是表达式分区的一个子集。
列表分区是指基于列表去判断将记录存放在对应的分区中,列表中的值和一个列的值是相关联的。
间隔分区是指每隔一个时间段或每隔N条数据分配一个分片,间隔分区只作用于数值类型、日期类型(只包括年月日)和时间戳类型(包括年月日时分秒毫秒)。
边栏推荐
猜你喜欢
随机推荐
云计算学习笔记——第二章 虚拟化与容器
NodeRed系列—创建mqtt broker(mqtt服务器),并使用mqttx进行消息发送验证
事件绑定触发
azkaban集群部署
分布式日志存储架构设计方案
Chapter 5 Loops and Relational Expressions
常用的转义字符
查看电脑配置信息
ES6 模块化
Docker安装Mysql及常用命令
03-npm安装包详解,解决npm下载慢的问题,引入nrm等
let 块级作用域
centos—docker安装mysql
lvs的keepalived
05-Nodejs中的模块加载机制
JS继承的几种方式及优缺点
c pointer learning (2)
ES6 迭代器与生成器
ENS在Web3.0浪潮下的有什么价值?
引用变量赋值


![《现代密码学》学习笔记——第七章 密钥管理[一]](/img/ca/ab51bc9afc7c902b2009283109ef8c.png)
![《现代密码学》学习笔记——第三章 分组密码 [二] AES](/img/83/161111c5f085f2f3d6587e32e15805.png)





