当前位置:网站首页>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条数据分配一个分片,间隔分区只作用于数值类型、日期类型(只包括年月日)和时间戳类型(包括年月日时分秒毫秒)。
边栏推荐
- 分布式日志存储架构代码实践
- 云计算学习笔记——第三章 计算虚拟化[二]
- Redis客户端管理神器RedisInsight 推荐
- PHP提高并发能力有哪些方案
- LeetCode43. String multiplication (this method can be used to multiply large numbers)
- 《现代密码学》学习笔记——第五章 密钥分配与密钥管理
- 05-JS中的BOM和DOM
- IDEA本机连接远程TDengine不成功,终于配置成功
- 利用Redis的bitMap完成用户签到功能
- Error in render: “TypeError: Cannot read properties of undefined (reading ‘kingKongList‘)“
猜你喜欢
随机推荐
C - file operations fseek () function, ftell, rewind, rounding
【记录】TypeScript
Promise
C language learning record--variable basic type and memory size
emqx安装及mqttx连接使用
C语言自定义类型——枚举类型讲解
云计算学习笔记——第三章 计算虚拟化[一]
PHP提高并发能力有哪些方案
06-JS定时器:间隔定时器、延时定时器
C语言结构体——位段概念的讲解
《现代密码学》学习笔记——第八章 身份鉴别
C language version - advanced address book (file version)
IDEA本机连接远程TDengine不成功,终于配置成功
[C language advanced] The first in-depth analysis of the storage of integer data in memory (1)
Object.keys
HUE部署
最全总结Redis数据类型使用场景
生成用户的唯一标识(openId),并且加密
正则表达式与绕过案例
如何修改严格模式让MySQL5.7插入用户表的方式新建用户成功?delete和drop的不同









